Parse的Javascript文件上传是否已损坏?

时间:2015-05-07 03:14:43

标签: javascript parse-platform

我一直在尝试保存用户上传的图像以解析时间最长,似乎没有任何工作 - 即使在关注他们的文档时也是如此。

以下是我在多文件上传时用于onChange()的处理程序。起初我担心多个文件上传,但此时只保存一个图像不起作用。

function fileHandler(event) {
  var files = event.target.files;
  stopPictures = [];
  $("#stop-img-container").empty();
  if (files[0] != null) {
    $("#stop-img-container").show();
    for (var i = 0; i < files.length; i++) {
      var file = files[i];
      var picReader = new FileReader();
      picReader.addEventListener("load",function(event){
          var picFile = event.target;
          var image = $("<img/>",{
            "title": picFile.name,
            "class": "stop-image",
            "src": picFile.result
          }).appendTo("#stop-img-container");
          var name = picFile.name;
          var dataFile = picFile.result;
          var base64str = dataFile.substring(dataFile.indexOf("base64,")+7,dataFile.length);
          var parseFile = new Parse.File(name,{base64:base64str}); // saving logs 404 Not Found from POST to "http://api.parse.com/1/files"
          var parseFile = new Parse.File(name,dataFile); // saving logs "Uncaught Creating a Parse.File from a String is not yet supported."
          var parseFile = new Parse.File(name,file); // saving logs 404 Not Found from POST to "http://api.parse.com/1/files"
          var parseFile = new Parse.File(name,base64str); // saving logs "Uncaught Creating a Parse.File from a String is not yet supported."
          parseFile.save().then(function (savedFile) {
            stopPictures.push(savedFile);
            alert("worked");
          });
      });
      picReader.readAsDataURL(file);
    }
  } else {
    $("#stop-img-container").hide();
  }
}

这里有一些无关紧要的东西,但基本上它会收集用户选择的文件,一旦完成加载就会显示它们,然后将它们创建为Parse文件。我把它留下来表明至少有些东西正常工作,因为它可以在本地存储和预览用户选择的文件。

我已经提供了三种创建相同Parse文件的方法。但是,当我尝试以任何方式保存到Parse时,所有这些都失败了。

Parse的Javascript API文档说任何这些应该可以正常工作。但他们撒谎,或者我是个白痴。

任何人都知道为什么这似乎不起作用?似乎他们的API的一个非常关键的方面被彻底打破 - 我很难想象。

编辑:我也很肯定我正在解析(小写字母p)base64字符串,因为this site确认了适当的图像并且有效。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题 最后我找到了导致问题的原因 这是一个“文件名”。

我怀疑tuckerchapin示例中的文件名为null  var name = picFile.name;

我用React写了这个例子 这段代码工作正常。

class ImageUpload extends React.Component {

  onChange(e) {
    var file = e.target.files[0];
    var parseFile = new Parse.File(file.name, file);
    Parse.User.current().set("icon",parseFile);
    Parse.User.current().save();
  }

  handleSubmit(e) {
   e.preventDefault();
  }

  render() {
     return (
       <form onSubmit={this.handleSubmit}>
         <input type="file" onChange={this.onChange.bind(this)} />
       </form>
     );
   }

}