使用ReactJS上传文件组件

jQuery React.js

Gil飞云

2020-03-19

我一直在到处寻找有关制作组件的帮助,以帮助管理从React到我已设置的端点的文件上传。

我尝试了许多选项,包括集成filedropjs我决定反对,因为我无法控制它在DOM中设置的元素new FileDrop('zone', options);

这是我到目前为止所拥有的:

module.exports =  React.createClass({
displayName: "Upload",
handleChange: function(e){

    formData = this.refs.uploadForm.getDOMNode();

    jQuery.ajax({
        url: 'http://example.com',
        type : 'POST',
        xhr: function(){
            var myXhr = $.ajaxSettings.xhr();
            if(myXhr.upload){
                myXhr.upload.addEventListener('progress',progressHandlingFunction, false);
            }
            return myXhr;
        },
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        success: function(data){
            alert(data);
        }
    });

},
render: function(){

        return (
            <form ref="uploadForm" className="uploader" encType="multipart/form-data" onChange={this.handleChange}>
                <input ref="file" type="file" name="file" className="upload-file"/>
            </form>
        );
   }

 });



},
render: function(){

    console.log(this.props.content);

    if(this.props.content != ""){
        return (
            <img src={this.props.content} />
        );
    } else {
        return (
            <form className="uploader" encType="multipart/form-data" onChange={this.handleChange}>
                <input ref="file" type="file" name="file" className="upload-file"/>
            </form>
        );
    }
}
});

如果有人可以指出正确的方向,我会发送一些虚拟的拥抱。我已经对此进行了广泛的研究。我觉得我已经接近了,但还没到那儿。

谢谢!

第2242篇《使用ReactJS上传文件组件》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
老丝泡芙 2020.03.19

这个https://www.npmjs.com/package/react-dropzone有一个Dropzone npm软件包。

Pro小卤蛋A 2020.03.19

我面临的任务是,获得类似Facebook或gmail的行为,一旦用户开始在窗口上的任何位置拖动文件,您的放置目标就会突出显示。我找不到任何现成的React拖放解决方案。所以,我做了一个。

它只是一个简单的系统,它为您提供了一个自定义和样式化自己的基础。它提供了许多挂钩,使您能够执行此操作。但是,还有一个演示为您提供了一个示例。

签出:https : //www.npmjs.com/package/react-file-drop

演示:http//sarink.github.io/react-file-drop/demo/

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android