- 主题:上传文件可以改名吗?
用户把文件拖拽到页面上,通过js捕获到drop事件之后,我可以拿到一个文件列表,里面是一个个的File对象。然后把File对象存储到FormData里,我可以用jQuery.ajax或者XMLHttpRequest把文件上传到服务器。现在我希望传输前能改下名字。有办法做到吗?(服务器是第三方的,所以不能在服务器端改名)。
--
FROM 222.190.111.*
这个我已经试过了,没有效果。可能chrome里这是个只读属性。
【 在 Orpherus (奥路菲) 的大作中提到: 】
: fileobj.name = new_name
--
FROM 222.190.111.*
没找到别的办法,现在用的方式是把文件用FileReader读到内存里,转成Blob,再用FormData.append(field, blob, filename)的方式指定文件名。缺点当然是如果文件比较大,会比较浪费内存。不过一般像水木附件这种小文件应该不是什么问题了。
【 在 Kneo (Kneo Fang) 的大作中提到: 】
: 这个我已经试过了,没有效果。可能chrome里这是个只读属性。
--
FROM 222.190.111.*
原贴不是说了嘛,服务器是第三方(水木)的。
【 在 force2008 (force) 的大作中提到: 】
: 后台拿到文件后改名不是更方便?js来做力所不能及
--
FROM 222.190.111.*
不了解需求的就不要考虑有没有意义了。
这个问题已经解决,不用浪费大家的时间继续讨论了。
【 在 dhcn (小石) 的大作中提到: 】
: 改上作甚?没有意义。首先本地硬盘里面的文件你是不能动的,其次文件传到服务器上的名字你也决定不了,你改的名字就存在那么一会儿。
--
FROM 175.150.128.*
前面的回帖有。
【 在 zthenry (哇咔咔) 的大作中提到: 】
: 咋解决的?
--
FROM 175.148.128.*
差不多。再加上我还需要定制文件名编码,以及从剪切板和网络上复制内容上传,所以最后统一上传blob了。
相关代码在这里:
https://github.com/iambus/WebTerm/blob/master/webterm/upload.coffee
【 在 blyw (勇往直前) 的大作中提到: 】
: 这个是最终解决方案对吗?
--
FROM 175.148.128.*
其实我不太确定哪些是html5的范畴……
【 在 blyw (勇往直前) 的大作中提到: 】
: 好的,谢谢。
: 好像是html5的东西?
--
FROM 175.148.128.*