1. 程式人生 > >vue+element上傳圖片

vue+element上傳圖片

 做的是頭像上傳,因為一直出錯,記錄一下

 <el-upload class="img-uploader" 
action="/resNavController/uploadPic" 
:show-file-list="false" :on-success="handleUploaderSuccess"  multiple="false">
 <img v-if="accountInfo.headImg" :src="accountInfo.headImg" class="img-uploader-img">
 <i v-else class="el-icon-plus img-uploader-icon"></i></el-upload>

 action:這個屬性是上傳的路徑地址

multiple="false"  :這個屬性設定是否上傳單張和自動上傳圖片

show-file-list:是否上傳多張圖片(需知道的是,element裡上傳圖片使用的都是單張的上傳,對於多張的,也只是封裝成list傳遞到後臺中)

element裡面有幾個自定義的屬性:執行順序分別是

beforeAvatarUpload --->執行action提交  --->執行handleAvatarSuccess or uploadError

beforeAvatarUpload:上傳圖片前的判斷,一般為圖片格式,圖片大小限定

執行提交即走後臺程式碼

handleAvatarSuccess or uploadError:成功或者失敗的執行步驟

 

如果不走封裝的upload方法,想使用自己的方式,可使用http-request ,這種當時主要是用於跨域使用

<el-upload
                multiple="false"
                :http-request="uploadHttp"
                :on-preview="handlePicturePreview"
                :before-upload="handlePictureBefore"
                :on-remove="handlePictureRemove">
        </el-upload>

js中:

        uploadHttp: function(file) {
			var fd = new FormData();
			fd.append('file', file.file);
			$.ajax({
                url:"url路徑地址",
				type: 'post',
				contentType: false,
				data: fd,
				async: false,
				processData: false,  //使用ajax上傳圖片要設定的
				success: function(res) {
					if (res.success) {
						console.log(res);
						//上傳成功
					} else {
						//上傳失敗
						return;
					}

				},
                error: function(res) {
				    alert("請求錯誤");
				}

			});

		},