当前位置:首页 » 文件管理 » nodepost上传文件

nodepost上传文件

发布时间: 2022-04-10 23:13:45

A. 如何使用Node.js将文件上传到对象存储

你说的对象存储是云么? 比如七牛云?
像这一类的都有提供的API,可以通过他们提供的API上传文件的。

B. node.js 上传文件中间件哪个好用

最简单的做法是通过“connect-multiparty”中间件实现上传。
通过在项目中npm install connect-multiparty进行安装。
用法:
var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
app.post('/upload', multipartMiddleware, function(req, resp) {
console.log(req.body, req.files);
// don't forget to delete all req.files when done
});

上传后,上传的文件会在临时目录中生成一个临时文件,具体可将req.files打印出查看具体文件路径。
只要在注释的地方将临时文件移动并重命名到实际目录中即可完成上传功能。
简单。

C. nodejs可以上传大文件吗

可以。不过要修改。

处理方式为在nodeJs的app.js文件中写一个use中间件将其大小限制给修改了。

修改代码:(app.js中)

[javascript]view plain

  • app.use(express.bodyParser({limit:"5000kb"}));

  • app.use(express.json({limit:'5000kb'}));


  • 这部分的代码顺序:(这个貌似没多大作用,不过还是留一个)

D. 前端上传的视频文件node如何处理

摘要 前端提交数据给node的几种处理方式,从最基本的get和post请求,到图片上传,再到分块上传,由浅入深。

E. 如何使用 NodeJS 将文件或图像上传到服务器

下面先介绍上传文件到服务器(多文件上传):
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;

public class upload extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GB2312";
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置允许用户上传文件大小,单位:字节,这里设为2m
fu.setSizeMax(2*1024*1024);
// 设置最多只允许在内存中存储的数据,单位:字节
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath("c://windows//temp");
//开始读取上传信息
List fileItems = fu.parseRequest(request);
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
//正则匹配,过滤路径取文件名
String regExp=".+////(.+)$";
//过滤掉的文件类型
String[] errorType={".exe",".com",".cgi",".asp"};
Pattern p = Pattern.compile(regExp);
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
//忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
Matcher m = p.matcher(name);
boolean result = m.find();
if (result){
for (int temp=0;temp<ERRORTYPE.LENGTH;TEMP++){
if (m.group(1).endsWith(errorType[temp])){
throw new IOException(name+": wrong type");
}
}
try{
//保存上传的文件到指定的目录
//在下文中上传文件至数据库时,将对这里改写
item.write(new File("d://" + m.group(1)));
out.print(name+" "+size+"");
}
catch(Exception e){
out.println(e);
}
}
else
{
throw new IOException("fail to upload");
}
}
}
}
catch (IOException e){
out.println(e);
}
catch (FileUploadException e){
out.println(e);
}

}
}
现在介绍上传文件到服务器,下面只写出相关代码:
sql2000为例,表结构如下:
字段名:name filecode
类型: varchar image
数据库插入代码为:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");
代码如下:
。。。。。。
try{
这段代码如果不去掉,将一同写入到服务器中
//item.write(new File("d://" + m.group(1)));

int byteread=0;
//读取输入流,也就是上传的文件内容
InputStream inStream=item.getInputStream();
pstmt.setString(1,m.group(1));
pstmt.setBinaryStream(2,inStream,(int)size);
pstmt.executeUpdate();
inStream.close();
out.println(name+" "+size+" ");
}
。。。。。。
这样就实现了上传文件至数据库

F. nodejs怎么实现多文件上传

前端formdata或者Ajax上传文件 Node端:用multiparty接收文件,再用fs.rename将文件存储到你需要的位置。 var MULTIPARTY = require('multiparty'); var FS = require('fs'); var saveTowerFile = function (req, res, next) { var form = new M.

G. nodejs上传文件到服务器保存原始文件名

如下:
1. index.js模块: 程序入口, 有服务器(server.js)和路由(route.js)和处理(handler.js)模块组成;
2. server.js模块: 专门处理不同路由, 并做相应的处理;
3. route.js模块: 请求的地址, 处理方法, 响应, 请求;
4. handler.js模块: 封装不同的方法,交由路由route.js模块来选择调用;
5. HTML文件: 存在HTML文件; 6. package.json模块: CommonJS规定的规范;

H. 最近在研究nodejs如何实现文件上传功能

前端formdata或者Ajax上传文件
Node端:用multiparty接收文件,再用fs.rename将文件存储到你需要的位置。
var MULTIPARTY = require('multiparty');
var FS = require('fs');
var saveTowerFile = function (req, res, next) {
var form = new MULTIPARTY.Form({uploadDir: "../appData/excel/"});
form.parse(req, function (err, fields, files) {
if (err) {
console.log("上传失败!" + err);
var errcode = {result: "失败"};
res.send(errcode);
return;
} else {
var inputFile = files.file[0];
var uploadedPath = inputFile.path;
var dstPath = '../appData/excel/' + UUID.v1();
FS.rename(uploadedPath, dstPath, function(err) {
if (err) {
var errcode = {result: "失败"};
res.send(errcode);
return;
} else {
debug('rename ok');
res.send(“OK”);
}
})
}
});

};

I. 求POST上传文件的代码

使用smartuplaod组件的 部分代码 原因很简单 这里发不完全部的

uploadFile.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="com.jspsmart.upload.*"%>
<%
// 设定请求编码方式,否则遇到中文就会乱码
request.setCharacterEncoding("gb2312");
%>

<html>
<head>
<title>上传文件实例</title>
</head>

<body>
<h2>上传文件实例</h2>
<hr>
请选择上传文件数量:
<select id="number" onchange="buildFileInput()">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
<form name="form1" enctype="multipart/form-data" action="upload_do.jsp" method="post">
<div id="files"></div>
<input type="submit" name="Submit" value="提交" />
</form>
</body>
<script language="javascript">

//根据选择的文件数量构造文件输入框列表
function buildFileInput(){
//取得文件数量下拉列表值
var num = document.all.number.value;
//将现有的文件输入框清除
clearFileInput();
//构造出新的文件输入框列表
for (var i=0;i<num;i++){
//创建一个div标签节点
filediv = document.createElement("div");
//创建一个文本节点
labeltext = document.createTextNode("第"+(i+1)+"个文件:");
//创建一个文件输入框节点
fileinput = document.createElement("input");
fileinput.type = "file";
fileinput.name = "file"+i;
//创建一个文本节点
memotext = document.createTextNode(" 第"+(i+1)+"个文件备注:");
//创建一个文本输入框节点
memoinput = document.createElement("input");
memoinput.type = "text";
memoinput.name = "memo"+i;
//将文本节点追加成div标签节点的子节点
filediv.appendChild(labeltext);
//将文件输入框节点追加成div标签节点的子节点
filediv.appendChild(fileinput);
//将文本节点追加成div标签节点的子节点
filediv.appendChild(memotext);
//将文本输入框节点追加成div标签节点的子节点
filediv.appendChild(memoinput);
//将div标签节点追加成files的子节点
document.all.files.appendChild(filediv);
}
}

//将现有的文件输入框清除
function clearFileInput(){
while (document.all.files.childNodes.length>0)
document.all.files.removeChild(document.all.files.childNodes[0]);
}

//初始化文件输入框列表
buildFileInput();

</script>
</html>

J. 如何用nodejs通过post发送multipart/form-data类型的http请求

//发送单条消息给接口方app.post("/sendMsgToAByPost",function(req,res,next){
//我的帖子:http://cnodejs.org/topic/4ffed8544764b729026b1da3
//http://yefeng.iteye.com/blog/315847
//http://stackoverflow.com/questions/5744990/how-to-upload-a-file-from-node-js
//http://stackoverflow.com/questions/9943010/node-js-post-file-to-server


console.log(req.files);
console.log(req.files.media.size);
varboundaryKey=Math.random().toString(16);//随机数,目的是防止上传文件中出现分隔符导致服务器无法正确识别文件起始位置
console.log(boundaryKey);

varoptions={
host:'api.com',
port:443,
path:'/media?type=image&access_token='+accessToken,
method:'POST'
};

varreqHttps=https.request(options,function(resHttps){
console.log("statusCode:",resHttps.statusCode);
console.log("headers:",resHttps.headers);

resHttps.on('data',function(body1){
console.log("body:"+body1);
});
});
varpayload='--'+boundaryKey+' '
//useyourfile'smimetypehere,ifknown
+'Content-Type:image/jpeg '
//"name"isthenameoftheformfield
//"filename"isthenameoftheoriginalfile
+'Content-Disposition:form-data;name="media";filename="aaa.jpg" '
+'Content-Transfer-Encoding:binary ';
console.log(payload.length);
varenddata=' --'+boundaryKey+'--';
console.log('enddata:'+enddata.length);
reqHttps.setHeader('Content-Type','multipart&#x2F;form-data;boundary='+boundaryKey+'');
reqHttps.setHeader('Content-Length',Buffer.byteLength(payload)+Buffer.byteLength(enddata)+req.files.media.size);

reqHttps.write(payload);

varfileStream=fs.createReadStream("D:\aaa.jpg",{bufferSize:4*1024});
fileStream.pipe(reqHttps,{end:false});
fileStream.on('end',function(){
//marktheendoftheoneandonlypart
reqHttps.end(enddata);

});

reqHttps.on('error',function(e){
console.error("error:"+e);
});

});

热点内容
大激战脚本 发布:2024-11-01 18:35:25 浏览:110
中国大学mooc密码要求是什么 发布:2024-11-01 18:33:45 浏览:816
jrtplib编译 发布:2024-11-01 18:06:01 浏览:227
java代码中if 发布:2024-11-01 18:02:40 浏览:378
android定时刷新 发布:2024-11-01 17:59:43 浏览:1000
炎黄解说我的世界服务器生存 发布:2024-11-01 17:59:42 浏览:543
如何清楚网页缓存 发布:2024-11-01 17:53:58 浏览:553
linux文件权限不够 发布:2024-11-01 17:53:19 浏览:918
c语言中10是什么意思 发布:2024-11-01 17:45:08 浏览:893
装棉衣压缩袋 发布:2024-11-01 17:37:18 浏览:297