我有一个proyect,即时通讯试图完成我想上传图像我可以上传图像但不在上传用于上传的目录
好吧让代码:
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 * …Run Code Online (Sandbox Code Playgroud) 我正在使用强大的包来上传文件.这是我的服务器端代码.
var formidable = require('formidable'),
http = require('http'),
util = require('util');
app.post('/admin/uploads', function(req, res) {
console.log(req.files, req.fields);//It prints
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
console.log("Inside form parse.");//its not printing
console.log(err, fields, files);//its not printing
});
form.on('file', function(name, file) {console.log('file='+file);});//its not printing
form.on('error', function(err) { console.log(err); });//its not printing
form.on('aborted', function() { console.log('Aborted'); });//its not printing
console.log(form);//it prints
});
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,form.parse()方法没有被调用.请为此问题提供解决方案.
抱歉我英语不好。它适用于本地主机,但不适用于生产。(使用 ZEIT NOW 部署)
这是上传.ts
import { NextApiRequest, NextApiResponse } from 'next'
import AWS from 'aws-sdk';
const formidable = require("formidable-serverless");
AWS.config.region = 'ap-northeast-2';
export const config = {
api: {
bodyParser: false,
}
}
export default async (req:NextApiRequest, res:NextApiResponse) => {
const data = await new Promise(function(resolve, reject) {
const form = formidable();
form.keepExtensions = true;
form.keepFilename = true;
form.parse(req, (err:any, fields:any, files:any) => {
const s3 = new AWS.S3({
accessKeyId: process.env.AWS_ACCESS_KEY_CODE,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY_CODE
});
const params = {
Bucket: …Run Code Online (Sandbox Code Playgroud) 美好的一天,我有一个表单,用于将字段和文件发送到node.js服务器.在服务器上由Formidable解析的数据.一切都运行良好,但在表单提交后,它会加载一个带有响应的页面.有没有人知道使用标准表单机制发送数据的方式而不是重新加载页面(带有serialize的jQuery ajax方法因为表单中的文件而无法工作)要么在服务器上写这样的响应,所以它不会触发页面重新加载.形成:
<form action="/upload" enctype="multipart/form-data" method="post" id="eventForm">
<label>Date</label>
<input type="text" name="date"/>
<label>Image</label>
<input type="file" multiple="multiple" name="picture" />
<input type="submit" value="Submit!" />
</form>
Run Code Online (Sandbox Code Playgroud)
服务器端:
app.post('/upload', function (req, res) {
var form = new formidable.IncomingForm();
// save file code goes here
form.parse(req, function(err, fields, files) {
//response code goes here
res.send('done');
});
});
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?谢谢!
我试着解决几天的问题,但无法理解一些事情.我有一个使用NodeJS和ExpressJS创建的网站,并且为了处理表单,我使用了body-parser.
var adName = req.body.adName;
var adMessage = req.body.adMessage;
var phone = req.body.phone;
var rawPrice = req.body.price;
var rawCurrency = req.body.currency;
Run Code Online (Sandbox Code Playgroud)
因此,使用此方法我处理表单值.但现在,我需要使用node-formidable来解析用户的图像.问题是,我可以以某种方式使用强大的图像和身体解析器的形式吗?或者,任何人都可以帮助我强大,了解如何处理表单并将值附加到我的变量?
我在使用 formidable 上传文件时遇到问题。我在 Windows Server 2016 上。
我的代码完整如下所示,基于https://www.geeksforgeeks.org/how-to-upload-file-using-formidable-module-in-node-js/
const express = require('express');
const fs = require('fs');
const path = require('path')
const formidable = require('formidable');
const app = express();
app.post('/api/upload', (req, res, next) => {
const form = new formidable.IncomingForm(
{ uploadDir: __dirname + '\\tmp', keepExtensions: true }
);
form.parse(req, function(err, fields, files){
var oldPath = files.profilePic.path;
var newPath = path.join(__dirname, 'uploads')
+ '/'+files.profilePic.name
var rawData = fs.readFileSync(oldPath)
fs.writeFile(newPath, rawData, function(err){
if(err) console.log(err)
return res.send("Successfully uploaded")
})
})
});
app.listen(3000, …Run Code Online (Sandbox Code Playgroud) 我有一个使用 nodejs + express 的表单
玉文件:
form(method="post", action="/upload", enctype="multipart/form-data")
input(type="file" name="image")
button(type="submit") Upload
Run Code Online (Sandbox Code Playgroud)
Index.js 并非所有代码只是必需的
var formidable = require('formidable'),
http = require('http'),
util = require('util');
var fs = require('fs');
MyProject.post('/upload',function(req, res){
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files)
{
console.log(files);
});
Run Code Online (Sandbox Code Playgroud)
当我使用 console.log(files) 结果是这样的
{ iProducto:
{ domain: null,
_events: {},
_maxListeners: 10,
size: 1262294,
path: 'C:\\DOCUME~1\\ADMINI~1\\CONFIG~1\\Temp\\556696bb1c0c6a54362b746c4445
45ca',
name: 'Dibujo.bmp',
type: 'image/bmp',
hash: null,
lastModifiedDate: Mon Jun 09 2014 21:25:42 GMT-0100 (Hora estándar de Cabo
Verde),
_writeStream:
{ …Run Code Online (Sandbox Code Playgroud) 这是一个小的Azure功能,我正在尝试使用强大的节点获取帖子表单字段。
module.exports = function (context, req, intable) {
var formidable = require('formidable');
var form = new formidable.IncomingForm(),
fields = [];
----> form.parse(context.req, function(err, fields, files) {
context.log(fields);
context.done();
return;
});
return;
};
Run Code Online (Sandbox Code Playgroud)
在代码中带有箭头的行中,它给出错误TypeError: req.on is not a function。不知道该怎么做,任何帮助将不胜感激。
我有 nodejs 服务器:
var http = require('http');
var formidable = require('formidable');
var fs = require('fs');
http.createServer(function (req, res) {
if (req.url == '/fileupload') {
console.log(req.rawHeaders)
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
if (err) throw err;
var oldpath = files.file.path
var newpath = 'C:/VSI/' + files.file.name;
fs.rename(oldpath, newpath, function (err) {
//if (err) throw err;
//res.write('File uploaded and moved!');
if (err) {
res.write(JSON.stringify({
success: false,
message: 'error happend'
})
);
res.end()
throw err;
}
res.write(JSON.stringify({
success: …Run Code Online (Sandbox Code Playgroud) formidable ×9
node.js ×8
express ×3
javascript ×3
forms ×2
ajax ×1
amazon-s3 ×1
azure ×1
body-parser ×1
file-upload ×1
networking ×1
next.js ×1
retrofit2 ×1
serverless ×1
upload ×1