1

我知道 jquery-file-upload 和 uploadify,但两者似乎都依赖于指示用户界面的闪存解决方案/回退。

如何仅使用 javascript 异步上传图像文件?

每次文件输入发生变化时,我都想将图片上传到s3,然后将图片位置异步保存到数据库中。一些想法:

  • 直接发布到 Amazon s3,并在成功时将图像位置发布到数据库

但是,我不确定如何在不泄露敏感 s3 密钥的情况下处理对 s3 的身份验证访问。

另外,我如何保证新图像文件的名称是唯一的?

  • 以某种方式序列化图像数据,将其作为带有 ajax 的字符串发布

然后服务器会放入s3存储桶,保存位置等。图像数据可以正确序列化并重新制作成图像吗?我知道您可以使用 显示预览图像FileReader,因此我可以使用它获取图像数据。


请让我知道上述方法之一是否可行,或者是否有一种简单的方法可以使这样的事情起作用:

$('#file-upload').change(function() {
  // Asynchronously get image on amazon s3 and saved in the database
});

应该是可能的,但是我看到的所有示例都与带有插件解决方案的用户界面非常相关。

4

1 回答 1

0

忘了这个问题!通过阻止正常的表单提交使其工作,如下所示:

var path = $('#form').attr('action');
$('#form').submit(function(evnt) {
  // stop normal submission
  evnt.preventDefault();  

  // POST it asynchronously
  var formData = new FormData(this);
  $.ajax({
    url: path,
    type: 'POST',
    data: formData,
    cache: false,
    contentType: false,
    processData: false
  });
});
于 2013-01-16T02:00:10.803 回答