寻找一种使用 ajax 使用 angularjs 将文件上传到 appengine go

Javascript代码:


$http({

    method: 'POST',

    url: 'some/path',

    headers: { 'Content-Type': false },

    transformRequest: function (data) {

      var formData = new FormData();

      formData.append("file", data);

      return formData;

    },

    data: file

}).

success(function (data, status, headers, config) {

    alert("success!");

}).

error(function (data, status, headers, config) {

    alert("failed!");

});

服务器代码:


func addImageHandler(w http.ResponseWriter, r *http.Request) {

    c := appengine.NewContext(r)

    blobs, _, err := blobstore.ParseUpload(r)

    if err != nil {

        http.Error(w, err.Error(), http.StatusInternalServerError)

        return

    }


    file := blobs["file"]

    ....

}

我正在击中处理程序,但是当我解析上传时,我的 blob 映射中没有任何文件。有什么明显的我遗漏了吗?


POPMUISE
浏览 176回答 2
2回答

凤凰求蛊

事实证明,该问题是原始问题中未包含的细节。您需要确保使用 blobstore 生成上传 url。例如:func ServeUploadUrl(w http.ResponseWriter, request *http.Request) {    context := appengine.NewContext(request)    myUrl := "some/upload/url"    // create the blobstore url here    blobstore.UploadURL(context, myUrl, nil)    ...}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go