我使用dropzone将文件上传到我的风帆后端。
在最长的时间里,我一直无法弄清楚它为什么不起作用。但是,当我将req
对象放入console.log
时,我得到了以下标题(即,这将是req.headers):
headers:
{ 'x-id': 'vendor-______________',
'x-token': '_______________',
host: 'localhost:1337',
'content-type': 'application/x-www-form-urlencoded',
'content-length': '0',
connection: 'close'
},
我猜这意味着dropzone丢失了一些内容,因此它没有发送content-type
multipart
这里是dropzone代码本身:(请注意,它与dropzone文档中给出的示例密切相关,但是是反应组件的一部分)
Component.add("DropzoneComponent", {
getDefaultProps: function(){
return {}
},
componentDidMount: function() {
var c = this
var field = new Dropzone(c.refs.dropzone, {
url: c.props.url,
paramName: "csv"
});
field.on("error", function(fileObject, err) {
console.log("dropzone file object:", fileObject, "***Error message***", err);
})
field.on("success", function(fileObject, file){
console.log("file object", fileObject, "file:", file);
})
render: function(){
return (
<span>
<input type="hidden" value={this.state.image || ""} name={this.props.name || ""} />
<div id="upload-field" ref="dropzone" type="file" className="dropzone"></div>
</span>
)
}
对于为什么会这样,或者如果我误解了这种情况,有什么猜测?