首页 > Web开发 > 详细

node.js使用formidable上传本地图片的问题

时间:2019-10-21 18:38:34      阅读:118      评论:0      收藏:0      [点我收藏+]

最近在学习node.js,参照《Node入门》这本书写到最后一个本地图片上传的时候出现一些问题,运行的时候老是报错

 

Error: ENOENT: no such file or directory, rename ‘C:\Users\ADMINI~1\AppData\Local\Temp\upload_9cb0b2d8ce4ef6562c00d5
a874de0f97‘ -> ‘/tmp/test.png‘

 

 

在百度上搜索解决办法,大多数说是路径不正确。

就是说fs.renameSync(files.upload.path, "/tmp/test.png")的"/tmp/test.png"不正确

于是我将行对路径改为绝对路径,问题还是没有解决,于是我有把路径改为了硬盘中的路径(需加转义符),这时出现了新的报错信息:

 

上传Error: EXDEV: cross-device link not permitted, rename ‘C:\Users\ADMINI~1\AppData\Local\Temp\upload_ab5d945e3b36668bc

100d7e035750d77‘ -> ‘D:\Program Files\nodejs\tmp\test.png‘

 

意思是说不允许跨磁盘命名文件,就是说不能把C盘的文件重命名到D盘。然后我在C盘新建一个tmp文件,将fs.renameSync(files.upload.path, "/tmp/test.png")改成C盘下的路径,问题得到了解决。

formidable的默认保存路径是:“C:\Users\Administrator\AppData\Local\Temp”,但是这并不是我想要的,没有人喜欢把文件保存到C盘。

于是我在文挡中找到了修改formidable存储路径的方法:

var form = new formidable.IncomingForm();
form.uploadDir = "/nodeTest/tmp"; //存储路径

然后完美解决问题

node.js使用formidable上传本地图片的问题

原文:https://www.cnblogs.com/zpfqi/p/11715043.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!