书上最后一个例子上传图片的,我用renameSync这个方法一直不能修改文件名,而且每次重启服务文件名都会变 /tmp/fb20b668d3de6a8df4d5d6c078eff1fd tmp后面的那一串总是再变,每重启一次服务器都会变,求解答,另附页面显示的文件详细信息:::{ fields: { title: ‘test’ }, files: { upload: { domain: null, _events: {}, _maxListeners: undefined, size: 6286, path: ‘/tmp/fb20b668d3de6a8df4d5d6c078eff1fd’, name: ‘test.png’, type: ‘image/png’, hash: null, lastModifiedDate: Wed Nov 20 2013 23:11:01 GMT+0800 (CST), _writeStream: [Object] } } }
系统是ubuntu 12.04LTS node版本:v0.11.2 npm版本:1.2.21
用变量名不就行了嘛。
path: ‘/tmp/fb20b668d3de6a8df4d5d6c078eff1fd’, name: ‘test.png’
xyz.files.path - upload 文件名 xyz.files.name - 原来的文件名
不懂什么意思,能详细说下么!!!另附upload方法的代码:: console.log(“Request handler ‘upload’ was called.”); var form=new formidable.IncomingForm(); console.log(“about to parse”); form.parse(request,function(error,fields,files){ try{ fs.renameSync(files.upload.path,"/tmp/test.png"); }catch(e){ console.log(e); } console.log(“parsing done “+files.upload.path); response.writeHead(200,{“Content-Type”: “text/html”}); response.write(“recrived image:<br/>”); response.write(”<img src=’/show’/>\n\n”); response.end(sys.inspect({fields: fields, files: files}));
@leapon没有出错,就是图片显示不出来!!!!!!!!
图片显示不出来是因为文件在 /tmp。可显示的文件在 project 的 public 目录下。fs.renameSync 要把文件挪到 project 的 public 目录下。
@leapon 我是直接用gedit写的没有public目录啊 难道要自己创建么???
@leapon 我觉得就是那个renameSync方法没有执行,因为我在后面用console.log输出files.upload.path时还是跟原来一样,一大堆看不懂的字符```
你有没有加 public 目录? app.use(express.static(process.cwd() + ‘/public’));
public 目录下的文件是网站上可见的。