【发布时间】:2014-06-10 20:33:48
【问题描述】:
我正在使用 s3 sdk 上传一个字符串(这将变成一个 txt 文件)。 使用sdk没问题。但由于 sdk 仅适用于新浏览器(例如:ie10+)我需要用另一种方式上传我的文件(适用于旧浏览器)
对于图像文件,我使用输入(类型文件)和上传表单
<form id="urlform" enctype="multipart/form-data" method="post" target="upload_target" class="inline">
<input type="hidden" name="key" value="{{$parent.keyurl}}">
<input type="hidden" name="acl" value="public-read">
<input type="hidden" name="AWSAccessKeyId" value="{{$parent.awSAccessKeyIdUrl}}">
<input type="hidden" name="success_action_redirect" value="{{$parent.redirectionUrl}}">
<input type="hidden" name="x-amz-meta-filename" value="{{$parent.filenameurl}}">
<input type="hidden" name="policy" value="{{$parent.policyurl}}">
<input type="hidden" name="signature" value="{{$parent.signatureurl}}">
<input type="hidden" name="x-amz-security-token" value="{{$parent.urlSessionToken}}">
<div>
<label>
</label>
<input type="file" name="file" id="urlfileinput">
</div>
</form>
此解决方案仅适用于输入类型 file 。
出于安全原因,我无法使用 jquery 更改输入的值。
还有其他上传文本的方法吗(也许使用其余的 api)?
【问题讨论】:
-
您能否从用户的角度明确说明您希望上传的行为方式?为什么要尝试使用 jQuery 更改文件输入的值?
-
为什么不尝试执行一个AJAX请求到服务器代码实现上传呢?它将提高安全性,因为真的会隐藏密钥和其他选项。
标签: javascript angularjs amazon-s3