最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Golang1.6:使用jQuery.iframe-Transport.js做Ajax文件上傳并處理multipartForm_html/css

來源:懂視網 責編:小采 時間:2020-11-27 16:39:45
文檔

Golang1.6:使用jQuery.iframe-Transport.js做Ajax文件上傳并處理multipartForm_html/css

Golang1.6:使用jQuery.iframe-Transport.js做Ajax文件上傳并處理multipartForm_html/css_WEB-ITnose:本文測試環(huán)境Golang 1.6, jQuery 1.12.3 之前寫過一篇文章: jQuery.iframe-Transport.js來發(fā)送Ajax文件上傳請求對返回JSON的處理,就是講使用這個jQuery插件時對返回JSON數(shù)據(jù)的處理,該插件會內置一個 這樣就可以實現(xiàn) ajax的 multipart/f
推薦度:
導讀Golang1.6:使用jQuery.iframe-Transport.js做Ajax文件上傳并處理multipartForm_html/css_WEB-ITnose:本文測試環(huán)境Golang 1.6, jQuery 1.12.3 之前寫過一篇文章: jQuery.iframe-Transport.js來發(fā)送Ajax文件上傳請求對返回JSON的處理,就是講使用這個jQuery插件時對返回JSON數(shù)據(jù)的處理,該插件會內置一個 這樣就可以實現(xiàn) ajax的 multipart/f

本文測試環(huán)境Golang 1.6, jQuery 1.12.3

之前寫過一篇文章: jQuery.iframe-Transport.js來發(fā)送Ajax文件上傳請求對返回JSON的處理,就是講使用這個jQuery插件時對返回JSON數(shù)據(jù)的處理,該插件會內置一個 這樣就可以實現(xiàn) ajax的 multipart/form-data實現(xiàn),注意這樣做主要是為了兼容低版本瀏覽器,如果不考慮IE < 10的話,可以直接使用XHR2,參考 這個鏈接.

所以代碼還是和以前一樣,如下(HTML):

JavaScript:

// avatarUpload是上面的type = “file”的input元素// 每當選擇文件后立即發(fā)送Ajax請求$('#avatarUpload').change(function() { //'upload'是具體發(fā)送POST請求針對的服務器URL $.ajax('upload', { type: 'POST', files: $('#avatarUpload'), iframe: true, // 注意如果服務器返回結果是JSON,dataType要設置 dataType: 'json' }).done(function(data) { // 這里data是JavaScript對象 console.log('done()', data); }).fail(function() { console.log('fail()'); }).always(function() { console.log('always()'); });});

接下來在Golang中,處理這個

,首先調用 http.Request的 ParseMultipartForm方法來處理 multipart/form-data,參數(shù)是內存內的最大Buffer大小,如果沒有錯誤的話,返回一個 multipart.Form對象,里面的 File屬性會包含用戶上傳文件的信息,具體請參考 文檔,這里我們通過 logMultipartForm函數(shù)簡單把里面的數(shù)據(jù)坐下輸出,如下代碼:

// 
輸出multipart.Form內的數(shù)據(jù)func logMultipartForm(form *multipart.Form) { log.Print("Values:", form.Value) log.Print("Files:") for key := range form.File { headers := form.File[key] for _, header := range headers { log.Printf("Key: %v, Filename: %v, Header: %v", key, header.Filename, header.Header) } }}// 處理POST請求的Handler// Handler的聲明可能根據(jù)不同路由HTTP框架而不一樣func fileUploadHandler(ctx context.Context, w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(1024 * 50) //50kb buffer if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } form := r.MultipartForm logMultipartForm(form) /* 后面省略 */}

示例輸出:

Values: map[X-Requested-With:[IFrame] X-HTTP-Accept:[application/json, text/javascript, */*; q=0.01]]Files:Key: avatarUpload, Filename: IMG_1156.jpg, Header: map[Content-Disposition:[form-data; name="avatarUpload"; filename="IMG_1156.jpg"] Content-Type:[image/jpeg]]

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Golang1.6:使用jQuery.iframe-Transport.js做Ajax文件上傳并處理multipartForm_html/css

Golang1.6:使用jQuery.iframe-Transport.js做Ajax文件上傳并處理multipartForm_html/css_WEB-ITnose:本文測試環(huán)境Golang 1.6, jQuery 1.12.3 之前寫過一篇文章: jQuery.iframe-Transport.js來發(fā)送Ajax文件上傳請求對返回JSON的處理,就是講使用這個jQuery插件時對返回JSON數(shù)據(jù)的處理,該插件會內置一個 這樣就可以實現(xiàn) ajax的 multipart/f
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top