PHP/jQuery S3上传不能处理带有空格的文件
PHP/jQuery S3 upload doesn't work on files with spaces
使用几个不同的脚本的组合,我试图创建一个工具,将允许用户上传视频从他们的本地机器到S3桶。它在没有任何空格的文件上工作得很好,但如果有任何空格,则完全阻塞(上传失败,我得到一个XHR错误)。
上传表单:
<table>
<tr>
<td>File:</td>
<td><input type="file" id="files" name="files[]" multiple /></td>
</tr>
<tr>
<td>Title:</td>
<td><input type="text" id="title" name="title" size="50" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" id="submit" name="submit" value="Start Encoding" /></td>
</tr>
</table>
<script type="text/javascript">
document.getElementById('submit').addEventListener('click', handleFileSelect, false);
setProgress(0, 'Waiting for upload.');
</script>
javascript:
<>之前函数handleFileSelect() {setProgress(0, '上传已开始…');var files = document.getElementById('files').files;var title = document.getElementById('title').value;Var pieces = files[0].name.split(".");Var text = "-original."+块碎片。长度- 1];//text = "-original.jpg"var currendatetime = new Date().getTime();var dockey = "FINVID" + currendatetime;//dockey = "FINVID20130523123546 .Files [0].name = dockey;$.get("updatetxtfile.php", {viddid: dockey, vidtitle: title});还是(文件[0],fext);}函数还是(文件,fext) {executeOnSignedUrl(文件,函数(signedURL){uploadToS3(文件,签名,文本);}, fext);}函数uploadToS3(文件,url,文本){var xhr = createCORSRequest('PUT', url);If (!xhr) {setProgress(0, '不支持CORS ');}其他的{xhr。Onload = function(){如果(xhr。状态== 200){setProgress(100, '上传完成');triggerEncoding(文件,fext);}其他的{setProgress(0, '上传错误:' + xhr.status);}};xhr。Onerror = function(){setProgress(0, 'XHR错误');};Xhr.upload.onprogress = function(e){如果(e.lengthComputable){var percentLoaded = Math.round()Loaded/e.total) * 100);setProgress(percentLoaded, percentLoaded == 100 ?)"最后的…': '上传…');}};xhr。setRequestHeader("内容类型",file.type);xhr。setRequestHeader("x-amz-acl"、"公有可读");xhr.send(文件);}}之前所以,用户选择一个视频文件,点击提交,然后触发handleFileSelect。最理想的情况是,我希望在上传之前重命名文件,但我甚至无法做到这一点。从规格上看,这是不可能的。这到底是怎么回事?一想到我不能上传一个有空格的文件就觉得很疯狂,所以我一定是弄错了,对吧?
看看这个
看起来可以很容易地管理键值(无论是静态的还是动态的)
<input type="hidden" name="key" value="uploads/${filename}">
和回调动作
<input type="hidden" name="success_action_redirect" value="http://localhost/">
而不需要手动上传。
如果你想的话,你可以把它变成ajax,但是要确保你使用了它们接受的所有非常有用的参数。
相关文章:
- 如何播放部分音频文件
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 根据类添加空格以保存文本文件
- 从 JS 文件中修剪空格在 Python 中不起作用
- 从服务器播放名称中有空格的远程音频文件
- 如何修剪所有的空格,除了那些在大JSON文件的引号
- PHP/jQuery S3上传不能处理带有空格的文件
- Grunt-babel破坏文件格式(新行和空格)
- Sublime Text 3: 4个空格的制表符不只适用于javascript文件
- 如何从Node中的文本文件中删除换行空格
- 在JQuery中使用空格链接文件
- 在验证文件时允许正则表达式中有空格
- 从 HTML 下拉列表生成 csv 文件时删除空格
- IE链接到本地文件与空格工作,但!不再有子文件夹了