nodejs保存文件问题

从前端那里拿到的jar包出现问题:

保存到本地管理机的jar包的md5sum值与上传的正确md5sum值不相等,而上传 过程 没有错误,说明保存过程中错误:

前端是通过base64转码之后再将jar包内容放进request.body[reqType]里面:

先是错误代码:

先用base64解码:

var jar_content = new Buffer(request.body[reqType].jar_content, ‘base64‘).toString();

然后使用writeFile的异步方法写入文件中:

fs.writeFile(pathname+jar_name, jar_content); //保存jar包到本地管理机

=====================================================

发现问题所在:

nodejs异步写入文件中导致文件还没有写完就返回了,应该要改成同步的writeFileSync,先把文件写完再返回。而且使用base64解码的toString()也要去掉:

var jar_content = new Buffer(request.body[reqType].jar_content, ‘base64‘);
try {
    fs.writeFileSync(pathname+jar_name, jar_content); //保存jar包到本地管理机
}
catch(err){
    console.log("this is error");
    return;
}
时间: 2024-11-09 07:32:07

nodejs保存文件问题的相关文章

nodejs保存文件的问题

从前端到那里jar包失败: 保存到本地管理机jar包md5sum上传正确的值md5sum值不相等.并上传 处理 没有错误,说明保存过程中的错误: 前面是base64然后转码后jar包内容放进request.body[reqType]里面: 先是错误代码: 先用base64解码: var jar_content = new Buffer(request.body[reqType].jar_content, 'base64').toString(); 然后使用writeFile的异步方法写入文件里:

nodejs 保存 payload 发送过来的文件

1:接受文件 http://stackoverflow.com/questions/24610996/how-to-get-uploaded-file-in-node-js-express-app-using-angular-file-upload 可以用下列的第三方库 busboy and connect-busboy multiparty and connect-multiparty formidable multer 2:保存文件

vim的保存文件和退出命令

文章来源:http://blog.sina.com.cn/s/blog_5e357d2d0100zmth.html 命令 简单说明 :w 保存编辑后的文件内容,但不退出vim编辑器.这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中. :w! 强制写文件,即强制覆盖原有文件.如果原有文件的访问权限不允许写入文件,例如,原有的文件为只读文件,则可使用这个命令强制写入.但是,这种命令用法仅当用户是文件的属主时才适用,而超级用户则不受此限制. :wq 保存文件内容后退出vim编辑器.这个

[android] 保存文件到手机内存

1. 界面的准备工作,普通登录界面,采用线性布局和相对布局. <Checkbox/>有个属性 android:checked=”true”,默认选中状态,相对布局里面<Button/>位于右边android:layout_alignParentRight=”true”,位于父控件的右面.密码框星号显示android:inputType=”textPassword” 2. 遇到device not found等错误可以直接忽略掉,布局文件属性里面绑定点击方法,传入的参数View对象代

C#打开/保存文件,获取路径

1.打开文件路径: OpenFileDialog a= new OpenFileDialog(); //new一个方法 a.Filter = "(*.et;*.xls;*.xlsx)|*.et;*.xls;*.xlsx|all|*.*"; //删选.设定文件显示类型 a.ShowDialog(); //显示打开文件的窗口 string fileName = a.FileName; //获得选择的文件路径 System.Diagnostics.Process.Start(fileName

(九)android 中数据存储与访问——保存文件到手机内存

9.1手机的存储区域 手机的存储区域通常有两个地方:一:手机内部存储空间,理解成一块微硬盘/data/data/:二:外部存储空间SD卡 9.2方法捕获异常的原则 如果方法有返回值,则用try catch捕获,如果方法的返回值是Void类型,则使用throws抛出异常 9.3 上下文Context Context:是一个类,提供一些方便的api 可以得到应用程序的环境,例如:环境的包名,安装路径,资源路径,资产的路径 9.4 保存文件到手机内存——登陆界面例子程序 9.4.1 项目需求 用户登陆

Asp.net直接保存文件到客户端

在我们的系统的编写过程中,应该有很多的时候需要客户下载文件.我第一次的做法(应该也是大部分人的做法吧?)是: 1 HttpResponse response = HttpContext.Current.Response; 2 string js = "<script language=javascript>window.open('{0}');</script>"; 3 js = string.Format(js, url); 4 response.Write(

win8不通过新打开窗口进行打开和保存文件,点击即显示文本内容,点击即保存文件

前面的一篇博客讲到通过打开新窗口进行打开和保存文件,这一篇则重点介绍怎样一步到位来进行打开和保存文件(这里还以.txt文本文件为例). 我们要打开.txt文本文件,无非是想要里面的文本内容,并且把其显示到页面里罢了,那我们能不能直接点击按钮就让文件的内容自动显示到页面上............ 而不需要经过打开新窗口这一步骤呢 同样,我们点击保存按钮,能不能就直接给文件命名为自己想要的名称,而且直接保存到自己想要的位置或者文件里........ 而不经过打开新窗口定位某一个具体的文件夹下这一步骤

Linux下使用vi新建文件保存文件时遇到错误:E212: Can&#39;t open file for writing

出现E212: Can't open file for writing的问题是由于权限问题导致的,解决方法有以下思路: 1.使用root进行登录,然后再操作. 2.在使用命令时,前面加sudo. 3.如果是多级文件夹的文件时,由于这个文件夹没有创建,所以要先创建这个文件夹,再来操作这个文件. Linux下使用vi新建文件保存文件时遇到错误:E212: Can't open file for writing