Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >NodeJs/Formidable,上传图片错误

NodeJs/Formidable,上传图片错误
EN

Stack Overflow用户
提问于 2014-03-29 15:38:22
回答 1查看 2.1K关注 0票数 2

我正在尝试使用NodeJs和Formidable制作一个图像/文件上传表单。我没有用快递。令人敬畏。但不管怎么说,我用formidable尝试了最常见的脚本,没有一个worked.My代码与本教程中的完全相同:http://justinkjchang.wordpress.com/2013/11/08/image-uploader-using-node-js/周围有很多这样的教程,我在一些书或视频中看到了几乎完全相同的东西,它们似乎都能工作,除了我的。我已经安装了formidable,并且我有它和Node的最新版本。我也在苹果电脑上。当我尝试上传时,它将遍历form.parse和所有内容,但当它尝试写入文件时,它抛出以下错误:

代码语言:javascript
运行
AI代码解释
复制
/Users/USER/Documents/Node/requestHandlers.js:42
    fs.rename(files.upload.path, "/tmp/test.png", function (error) {
                          ^
TypeError: Cannot read property 'path' of undefined

我是Nodejs的新手,所以任何类型的帮助都会很好。我也尝试过执行file.write,但仍然抛出相同的错误。如有任何帮助,我们将非常感谢(:

使用代码更新:

代码语言:javascript
运行
AI代码解释
复制
var exec = require("child_process").exec;
var qs = require("querystring"),
fs = require("fs"),
formidable = require("formidable"),
url = require( "url" );

function start(response, request) {
/*
var fileName = "start.html"
var localPath = __dirname;
var mimeType = "text/html";
var name = localPath + "/" + fileName;
getFile(name, response, mimeType);
console.log("Request handler 'start' was called.");
console.log("Serving File: " + name);
*/
var body = '<html>'+
    '<head>'+
    '<meta http-equiv="Content-Type" '+
    'content="text/html; charset=UTF-8" />'+
    '</head>'+
    '<body>'+
    '<form action="/upload" enctype="multipart/form-data" '+
    'method="post">'+
    '<input type="file" name="upload" multiple="multiple">'+
    '<input type="submit" value="Upload file" />'+
    '</form>'+
    '</body>'+
    '</html>';

console.log( "Request for 'start' is called." );

response.writeHead( 200, { "Content-Type" : "text/html" } );
response.end( body );
}

function upload(response, request) {
console.log("Request handler 'upload' was called.");
console.log( "Preparing upload" );

var form = new formidable.IncomingForm();

form.parse(request, function(error, fields, files){
    if(error){
        console.log(error);
        console.log("Dun Goofed");
    }
    console.log("parsing done");
    fs.rename(files.upload.path, "/tmp/test.png", function (error) {
        if (error) {
            fs.unlink("/tmp/test.png");
            fs.rename(files.upload.path, "/tmp/test.png");
        }
    });
    /* fs.rename(files.upload.path, "/tmp/test.png", function(err){
        if(err){
            fs.unlink("/tmp/test.png");
            fs.rename(files.upload.path, "/tmp/test.png");
        }
    }); */
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Received image: <br/>");
    response.write("<img src='./show' />");
    response.end(); 
});
}


exports.start = start;
exports.upload = upload;
//exports.show = show;

我省略了一些部分,因为它们与文件上传无关,请原谅我的评论,只是旧代码。我也没有/show函数,因为我临时擦除了它。这里还有我在控制台中得到的错误。其中一个错误是因为上传取消了。在我输入我想要上传的文件后,浏览器只是在那里停留了一段时间,等待对服务器的请求,在控制台中,它只是停在form.parse之前,坐在那里大约一分钟什么也不做,然后它就会抛出所有的错误。

代码语言:javascript
运行
AI代码解释
复制
Web Server started on 127.0.0.1:8888
Request for / received.
About to route a request for /
Served a request for /
Request for 'start' is called.
Request for /upload received.
Received POST data chunk
About to route a request for /upload
Served a request for /upload
Request handler 'upload' was called.
Preparing upload

在此之前成功执行。然后浏览器等待一段时间,然后弹出没有接收到数据,或者网页不可用,然后在控制台中出现这些错误。

代码语言:javascript
运行
AI代码解释
复制
{}
[Error: Request aborted]
Dun Goofed
parsing done

/Users/USER/Documents/Node/requestHandlers.js:50
    fs.rename(files.upload.path, "/tmp/test.png", function (error) {
                          ^
TypeError: Cannot read property 'path' of undefined
at /Users/USER/Documents/Node/requestHandlers.js:50:31
at IncomingForm.<anonymous>    (/Users/USER/node_modules/formidable/lib/incoming_form.js:89:9)
at IncomingForm.EventEmitter.emit (events.js:95:17)
at IncomingForm._error (/Users/USER/node_modules/formidable/lib/incoming_form.js:272:8)
at IncomingMessage.<anonymous>     (/Users/USER/node_modules/formidable/lib/incoming_form.js:107:12)
at IncomingMessage.EventEmitter.emit (events.js:92:17)
at abortIncoming (http.js:1911:11)
at Socket.serverSocketCloseListener (http.js:1923:5)
at Socket.EventEmitter.emit (events.js:117:20)
at TCP.close (net.js:465:12)
EN

回答 1

Stack Overflow用户

发布于 2014-03-30 14:04:22

我也有同样的问题。

删除server.js中的代码request.setEncoding("utf8");

如下所示:

代码语言:javascript
运行
AI代码解释
复制
function start(route, handler) {
    http.createServer(function(request, response) {
        var postData = "";
        var pathname = url.parse(request.url).pathname;
        route(handler, pathname, response, request);

    }).listen(8889);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22733110

复制
相关文章
【MATLAB】进阶绘图 ( 进阶绘图展示 | 对数图 | semilogx 半对刻度数图 | semilogy 半对数刻度图 | loglog 双对数刻度图 )
logspace 函数参考文档 : https://ww2.mathworks.cn/help/matlab/ref/logspace.html
韩曙亮
2023/03/29
2.5K0
【MATLAB】进阶绘图 ( 进阶绘图展示 | 对数图 | semilogx 半对刻度数图 | semilogy 半对数刻度图 | loglog 双对数刻度图 )
Python散点图绘制(用seaborn绘制散点图)
在python中画散点图主要是用matplotlib模块中的scatter函数,先来看一下scatter函数的基本信息。
全栈程序员站长
2022/07/29
2.1K0
Python散点图绘制(用seaborn绘制散点图)
Python matplotlib绘制散点图
上篇文章介绍了使用matplotlib绘制折线图,参考:Python matplotlib绘制折线图,本篇文章继续介绍使用matplotlib绘制散点图。
Python碎片公众号
2021/02/26
2.6K0
Python matplotlib绘制散点图
Python-matplotlib 散点图绘制
本期推文的主要内容是散点图的绘制教程,所使用的数据关于全球教育水平划分的师生比例,涉及到的包主要为matplotlib和seaborn,当然用于数据处理分析的pandas和 numpy也必不可少。
DataCharm
2021/02/22
1.4K0
Python-matplotlib 散点图绘制
python画qq图_python绘制散点图
qq图有两个作用:1、检验一组数据是否服从某一分布。2、检验两个分布是否服从同一分布。qq图全称是quantile-quantile plot,从名称中可以了解到是和分位数相关的图。由于最近在做数据分析时用到了,然而看了一些博客,要么是qq图讲解的比较详尽但是没有使用Python;要么是使用Python语言但是没有讲清楚原理。基于此,想写一篇博客尽量讲清楚原理并且用Python实现出来。
全栈程序员站长
2022/09/22
2.3K0
python画qq图_python绘制散点图
Python-matplotlib 商业图表 - 散点图
虽然小伙伴们喜欢空间绘图方面的居多(毕竟这方面的小伙伴居多),但商业图表的绘制也不能放下哦!本期就推出一篇商业图表的仿制教程。主要涉及内容如下:
数据森麟
2021/03/09
8150
Python-matplotlib 商业图表 - 散点图
python画时间序列散点图
在运维管理中,经常遇到时间序列的数据,比如网卡流量、在线用户数、并发连接数,等等。用散点图可以直观的查看数据的分布情况。
py3study
2020/01/07
4.8K0
python画时间序列散点图
Python-matplotlib 散点图配色设计
这篇推文还是python-matplotlib 散点图的绘制过程,涉及到的内容主要包括matplotlib ax.scatter()、hlines()、vlines()、text()、添加小图片和定制化散点图图例样式等。前期的数据处理部分还是pandas、numpy库的灵活 应用(这里主要涉及可视化的设置,数据处理、分析部分后期会专门开设专辑进行教程讲解。当然大家有不理解地方可以后台和我交流)
DataCharm
2021/02/22
1.1K0
Python-matplotlib 散点图配色设计
数据可视化干货:使用pandas和seaborn制作炫酷图表(附代码)
导读:我们介绍过用matplotlib制作图表的一些tips,感兴趣的同学可以戳→纯干货:手把手教你用Python做数据可视化(附代码)。matplotlib是一个相当底层的工具。你可以从其基本组件中组装一个图表:数据显示(即绘图的类型:线、条、框、散点图、轮廓等)、图例、标题、刻度标记和其他注释。
前端皮皮
2021/05/18
5.5K0
数据可视化干货:使用pandas和seaborn制作炫酷图表(附代码)
Python-matplotlib 散点图绘制02
这篇推文还是python-matplotlib 散点图的绘制过程,涉及到的内容主要包括matplotlib ax.scatter()、hlines()、vlines()、text()、添加小图片和定制化散点图图例样式等。前期的数据处理部分还是pandas、numpy库的灵活 应用(这里主要涉及可视化的设置,数据处理、分析部分后期会专门开设专辑进行教程讲解。当然大家有不理解地方可以后台和我交流)
DataCharm
2021/02/22
1K0
Python-matplotlib 散点图绘制02
Python绘制旭日图_python绘制散点图
参考链接:https://blog.csdn.net/m0_67790374/article/details/124137448
全栈程序员站长
2022/11/09
1.4K0
Python绘制旭日图_python绘制散点图
利用Python绘制直方图和散点图
对于用python进行绘制直方图和散点图。这需要利用matplotlib库引用后才能画图,x,y数组自行设置数目相同即可,标签等不可出现中文。Plt.show()用于图形显示,不写则无法显示图形。
算法与编程之美
2023/08/22
2220
利用Python绘制直方图和散点图
Python-seaborn 基础图表绘制-散点图
上期推文推出第一篇基础图表绘制-R-ggplot2 基础图表绘制-散点图 的绘制推文,得到了很多小伙伴的喜欢,也是我更加想使这个系列做的更加完善和系统,我之前也有说过,会推出Python和R的两个版本绘制教程,接下来我们就推出基础散点图的Python绘制版本。本期主要涉及的知识点如下:
数据森麟
2020/11/23
1.6K0
Python-seaborn 基础图表绘制-散点图
python math.log对数
plt.plot(x,y1,linewidth=2,color='red',label ='log1.5(x)')
用户7886150
2021/01/06
8490
Python-matplotlib 学术散点图完善
上期的推文Python-matplotlib 学术型散点图绘制 推出后,很多小伙伴比较喜欢
气象学家
2020/07/15
2.3K0
绘制刻度尺
上面的代码,其实可以进一步提炼,比如 25 ,可以设置为 const OFFSET_NUMBER = 25。感兴趣的读者可以对其进行优化。
Jimmy_is_jimmy
2023/08/14
3530
绘制刻度尺
Python-matplotlib 另类散点图绘制
本期推文的主要内容是散点图的绘制教程,所使用的数据关于全球教育水平划分的师生比例,涉及到的包主要为matplotlib和seaborn,当然用于数据处理分析的pandas和 numpy也必不可少。
DataCharm
2021/02/22
1.3K0
Python-matplotlib 另类散点图绘制
R-ggplot2 学术散点图绘制
本期推文,我们使用 R-ggplot2 绘制学术拟合散点图,关注公众号并后台回复"资源分享"即可获取包括本篇教程的数据及其他绘图教程的Python代码和对应数据
DataCharm
2021/02/22
1.5K0
R-ggplot2 学术散点图绘制
使用 Python 对数据进行压缩
之前在工作中遇到一个需求,需要在手机小程序端获取到微信小商店店铺的所有商品数据。由于当时我们没有在后台维护用户的商品数据,选择的解决方案是现场调用商品列表接口,然后缓存在 Redis 里。
杜逸先
2021/06/09
4.7K0
点击加载更多

相似问题

如何计算图像梯度

10

计算图像梯度

10

如何在python中计算带核图像的梯度

12

Python -计算梯度

11

仅使用梯度幅度图像计算梯度方向

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档