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


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

    Error: ENOENT: no such file or directory, rename 'C:UsersADMINI~1AppDataLocalTempupload_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:UsersADMINI~1AppDataLocalTempupload_ab5d945e3b36668bc

    100d7e035750d77' -> 'D:Program Files odejs mp est.png'

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

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

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

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

    然后完美解决问题

  • 相关阅读:
    二十八、线程安全
    一、JAVA内存区域与内存溢出异常
    一、SQLite学习
    排列问题
    2016年秋季个人阅读计划
    有向图强连通分量求解【转】
    《梦断代码》阅读笔记之五
    《梦断代码》阅读笔记之四
    软件工程个人总结
    《梦断代码》阅读笔记之三
  • 原文地址:https://www.cnblogs.com/zpfqi/p/11715043.html
Copyright © 2020-2023  润新知