React Dropzone帖子文件到Go服务器

时间:2017-11-21 14:38:31

标签: ajax reactjs post go

我没有尝试使用React-dropzone将文件发布到Go后端但是遇到了问题。

这是我的反应代码:

const request = require('superagent');
<Dropzone name="file" onDrop={this.onDrop} multiple={false} /> 

onDrop = (acceptedFiles) => {
   const req = request.post('/uploadTorrent');

    acceptedFiles.forEach(file => {
        req.attach(file.name, file);
    });
    req.end();
}

这是JS方面的错误:

XHR failed loading: POST "http://192.168.1.141:8000/uploadTorrent"
POST http://192.168.1.141:8000/uploadTorrent net::ERR_EMPTY_RESPONSE

如果我控制JS.j上的文件变量我得到了这个:

File(61718) {preview: "blob:http://192.168.1.141:8000/a3e9ed9f-6f6c-4471-8322-3591e9e138c7", name: "ubuntu-17.04-desktop-amd64.iso (1).torrent", lastModified: 1506018302216, lastModifiedDate: Thu Sep 21 2017 14:25:02 GMT-0400 (Eastern Daylight Time), webkitRelativePath: "", …}

不确定它是否应该如何。

我可以CURL服务器,它完全按预期工作:

curl http://192.168.1.141:8000/uploadTorrent -F "file=@ubuntu.torrent;filename=ubuntu.torrent"

以下是Go方面的代码:

http.HandleFunc("/uploadTorrent", func(w http.ResponseWriter, r *http.Request) { //grabbing the uploaded Torrent File and adding it to the client


    file, header, err := r.FormFile("file")
    fmt.Println(reflect.TypeOf(file))
    fmt.Println("File: ", file)
    if err != nil {
        fmt.Println("Error with fetching file or request issue", file)
    }

当我尝试从JS上传时,它总是为文件变量提取NIL值。

<nil>
File:  <nil>
Error with fetching file or request issue <nil>
2017/11/20 23:54:10 http: panic serving 192.168.1.141:64806: runtime error: 
invalid memory address or nil pointer dereference

任何人都知道造成这种情况的原因是什么?

更新

我从头开始使用这个元素:

<form  encType="multipart/form-data" method="post" action="/uploadTorrent">
   <input  name="fileTest" type="file" /><p />
   <input type="submit" value="submit" />
</form>

(我编辑了后端以寻找“fileTest”)。这非常有效。我被迫做一个301重定向回到主页,这让我很烦,因为这不是反应方式,但我是新手,所以我会接受这个作为我满意的解决方法。

0 个答案:

没有答案