nodejs 强大的改变 uploadDir

2024-04-29

我有一个项目正在努力完成我想上传图像 我可以上传图像,但不能上传应该上传的空中图像

好的,让我们编写代码:

 app.post('/register',function(req,res) 
    {
var form = new formidable.IncomingForm();
form.keepExtensions = true;
form.uploadDir ='./uploaded/';
form
    .on('error', function(err) {
        throw err;
    })

    .on('field', function(field, value) {
        //receive form fields here
    })

    /* this is where the renaming happens */
    .on ('fileBegin', function(name, file){
            //rename the incoming file to the file's name
            file.path = form.uploadDir + "/" + file.name;
    })

    .on('file', function(field, file) {
        //On file received
    })

    .on('progress', function(bytesReceived, bytesExpected) {
        //self.emit('progess', bytesReceived, bytesExpected)

        var percent = (bytesReceived / bytesExpected * 100) | 0;
        process.stdout.write('Uploading: %' + percent + '\r');
    })

    .on('end', function() {


    });

form.parse(req);

问题是,当我发布图像时......图像仍然保存在 process.env.TMP 上 我的项目有这个目录 arq

proyect:
    node_modules
    uploaded
    public
    routes
    views
    app.js
    package.json

编辑2:问题是BODYPARSER

从最后的代码来看,问题是 app.js,当我配置应用程序时,它有一个 bodyParser,以便 bodyParser 方法使用来自 Express 的强大功能

最后的代码是正确的并且功能齐全,如果有人想使用该代码...只需注释来自express.configure的行

app.use(express.bodyParser());

关闭 Express Bodyparser 但 Express 使用也很强大,所以是同样的事情......

还有一个问题

我像这样配置express.bodyParser

  app.use(express.bodyParser(
    {
      uploadDir: './uploads',
      keepExtensions: true
    }));

我像这样更改第一个代码

app.post('/register',function(req,res) 
{
  var oldDir=req.files.img.path;
  var newDir='./uploads/'+req.body.email+'/perfil/';

if(req.files)
{
  mkdirp(newDir,0777,function(err){
    if(err) throw err;
  })
}
if(req.files)
{
  fs.rename(oldDir,newDir+req.files.img.name,function(err){
    if(err) throw err;
  });

}
res.send('pow!');

它的功能是,当此代码收到文件时,将文件放入上传文件夹中,然后使用电子邮件名称创建文件夹,最后将文件移动到电子邮件文件夹中,并将其重命名为带有扩展名的原始文件

这是完美的”!

不,没有完美...我想用这个方法

.on ('fileBegin', function(name, file){
            //rename the incoming file to the file's name
            file.path = form.uploadDir + "/" + file.name;
    })
    .on('progress', function(bytesReceived, bytesExpected) {
        //self.emit('progess', bytesReceived, bytesExpected)

        var percent = (bytesReceived / bytesExpected * 100) | 0;
        process.stdout.write('Uploading: %' + percent + '\r');
    })

因为从第一个代码我可以配置从头开始放置文件的位置 在第二个代码中,我在服务器收到文件后移动文件

我认为该方法是在express中,因为express使用像中间件一样强大的功能

我如何配置该方法?

方法在哪里......?'?

我如何从第二个代码中知道 req.files 中包含的方法? (因为使用 bodyParser() 的 req.files 与第一个代码中使用 formidable 的 form.file 相同)

tnx all


IncomingForm 构造函数采用一个选项对象。您可能还需要在路径中使用 __dirname 全局变量。

var form = new formidable.IncomingForm({ uploadDir: __dirname + '/uploaded' });

您可以看到如何应用该选项强大的来源 https://github.com/felixge/node-formidable/blob/master/lib/incoming_form.js.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nodejs 强大的改变 uploadDir 的相关文章

随机推荐

  • 如何修复缺少结束标签的 xml 文件

    我有一个如下所示的 xml 文件 它缺少结束标签 这是一个大约 10000 行的巨大文件 我该如何解决
  • 处理网络断开

    我正在尝试使用 HttpWebRequest 对象进行 长轮询 在我的 C 应用程序中 我使用 HttpWebRequest 发出 HTTP GET 请求 然后 我使用 beginGetResponse 等待响应 我正在使用 ThreadP
  • 转换为“const Y”不适用于 clang 上的“R&&”

    以下代码可以正常编译g GCC 4 7 1 20120721 但 最近构建失败clang version 3 2 trunk struct Y struct X operator const Y const return Y void f
  • 将数组转换为 Json [重复]

    这个问题在这里已经有答案了 可能的重复 在 jQuery 中序列化为 JSON https stackoverflow com questions 191881 serializing to json in jquery 将对象转换为 JS
  • 是否可以重载 *static_cast* 运算符?

    我定义了一个类A 实际属性无关 是否可以定义一个专业化static cast
  • 如何获取Access数据库中已更改的记录详细信息

    我有一个 Access 数据库 其中有许多表和数千条记录 如果有人更改其中的任何数据 任何行 甚至只是一个单元格 有什么方法可以知道哪些特定行或单元格已更改Access 数据库 任何属性或者我应该使用任何触发器吗 几年前我在使用 MSSQL
  • 在ListView.builder() flutter中动态创建单选按钮Group

    我想创建一个这样的用户界面 最后 我得到了所有选定单选按钮的详细信息 这是我的完整代码 当我尝试这样做时 所有单选按钮都转向一侧 import package flutter cupertino dart import package fl
  • 如何在mySQL数据库中安全地插入代码

    我正在构建一个网站 用户可以使用 PHP 和 mySQL 数据库来存储代码片段 但我不知道如何安全地将用户输入的代码插入我的数据库 我无法使用我通常使用的 安全 功能来转换输入 trim stripslashes等 因为重点是您可以将代码视
  • Reactjs:追加而不是用渲染方法替换

    我是 ReactJs 的新手 我脑子里有很多问题 例如我想追加而不是用 render 方法替换 Can I 安全简单做这个 创建一个临时 div var temp document createElement div ReactDOM re
  • 用于计算井字游戏独特状态的高效算法

    我正在尝试构建一个井字游戏来演示和实验机器学习算法 并且我发现了一个有趣的问题 例如 井字棋板可以是mirrored 但出于机器学习的目的 这两种状态是等效的 x o o x o o x x o o 同样地旋转 x o x o o o x
  • 显示部分/div 取决于链接中的哈希值 # 后

    我有以下页面 section height 1000px background yellow margin 50px section Section one section section Section two section 如果用户来
  • 将白色反转为黑色 uiimage

    我有以下 UIImage 使用 Objective C 我希望能够将白色反转为黑色 反之亦然 任何帮助 将不胜感激 Swift Using CIContext代替 UIImage CIImage see https stackoverflo
  • 在 WP7 中进行同步 Http/REST 调用?

    我一直在开发 Windows Phone 7 应用程序 并尝试使用 HttpWebRequest GetResponse 进行同步 REST 调用 但编译器抱怨 GetResponse 不可用 我在HttpWebRequest中找到了Beg
  • 如何使 PHPunit 在警告时返回非零退出状态

    当在一些失败并出现警告的测试中调用 PHPunit 时 我得到 phpunit c phpunit xml group app Warning MongoCollection insert expects parameter 1 to be
  • jQuery 动画,不流畅

    你知道动画猫如何才能移动得更流畅吗 很卡顿 不知道如何让它变得更流畅 jQuery fx interval 没有帮助 http christianhaller com jquery animate img html http christi
  • LibUsb 声明接口访问被拒绝 Java

    我希望能够从 USB 计步器读取数据 我正在 Java 中尝试此操作 并且使用 LibUsb 和 Usb4Java 库 我似乎无法认领 USB 管道或类似的东西 我正在使用的代码 final Context context new Cont
  • VB.NET 使用 system.net.tcpclient 编写 telnet 客户端

    当我连接到我的Solaris盒子时这对我不起作用 服务器正在回传 有谁知道我做错了什么 Imports System Net Imports System Net Sockets Imports System Text Public Cla
  • 添加滑动删除UITableViewCell

    我正在制作一个清单应用程序UITableView 我想知道如何添加滑动删除UITableViewCell 这是我的 ViewController swift import UIKit class ViewController UIViewC
  • itunesconnect 应用程序 - 恢复到以前的版本

    我发布了我的应用程序的更新并获得批准 尽管它包含一个严重的本地化错误 大多数用户都得到了错误的语言 但它还是获得了批准 有什么方法可以快速恢复到以前的版本 暂停当前版本的当前下载 或者其他任何可能有助于解决此问题的方法 我几年前确实读过以下
  • nodejs 强大的改变 uploadDir

    我有一个项目正在努力完成我想上传图像 我可以上传图像 但不能上传应该上传的空中图像 好的 让我们编写代码 app post register function req res var form new formidable Incoming