一个关于node上传文件的例子,下面是前端代码,
doUpload() { var formData = new FormData($("#uploadForm")[0]); $.ajax({ url: 'http://localhost:3011/upload', type: 'POST', data: formData, async: false, cache: false, contentType: false, processData: false, success: function (returndata) { alert(returndata); }, error: function (returndata) { // alert(returndata); } }); } <form> <p>上传文件: <input type="file"/> <input type="text" value="232323"/> </p> <input type="button" value="上传" onClick={this.doUpload.bind(this)}/> <input type="button" onClick={()=>{this.submit()}} value="确定"/> </form>
服务端 代码 需要安装插件formidable
exports.upload = function (req,res,next) { //keepExtensions为true时,显示文件扩展名 var form = new formidable.IncomingForm({keepExtensions:true}); //指定文件目录 form.uploadDir = path.join(__dirname); form.parse(req,function (err,fields,files) { //fields存放的为json数据 //files存放的是文件信息 //更改文件目录,并且显示上传之前的名字 fs.rename(files.file.path,__dirname+'https://www.jb51.net/'+files.file.name,function (a,b) { }); res.json({success:'修改成功'}) }); };