1

问题:

我有上传文件的网址(例如http://files.parse.com/../../..jpg)和文件名,现在需要从该网址中检索相应的文件(Parse.com ) 仅通过 Javascript 使用。谁有答案告诉我。非常感谢!

代码:(上传):

function uploadFn(fileName,fileType,fileData,c){ 
        var parseUrl='https://api.parse.com/1/files/'+fileName; 
$.ajax({
        type:'post',
        beforeSend:function(req){
                req.setRequestHeader('X-Parse-Application-Id',myParseAppId);
                req.setRequestHeader('X-Parse-REST-API-Key',myParseRestApiId);
                req.setRequestHeader('Content-Type',fileType); // fileType always == 'image/jpg;'
            },
        url:parseUrl,
        data:fileData,
        processData:false,
        contentType:false,
        success:function(rslt){
            if(rslt){
            alert('Upload success\n Filename:'+rslt.name+'\n Url:'+rslt.url);
                    imgObj.save({curUser:curUser,fileName:rslt.name,fileUrl:rslt.url,fileId:c},
                                {success:function(succ){
                                    alert('File info saved!');
                                    },error:function(err){ 
                                        alert('Error:'+err.code);
                                        }
                                }) // save


                }
            },
        error:function(err){
                //var errObj=jQuery.parseJSON(err);
                alert('Error:'+err.responseText);
            }
    });
  }

上传不是问题。它工作正常!仅用于从 Parse.com 检索

(toRetrieve)[我试过:]

function fetchImg(url){
  $.ajax({
   url:url,
   async:false,
   type:'POST',
   beforeSend:function(req){
        req.setRequestHeader('X-Parse-Application-Id',myParseAppId);
        req.setRequestHeader('X-Parse-REST-API-Key',myParseRestApiId);
        req.setRequestHeader('Content-Type','image/jpg');
    },
   complete:function(rslt){
        $('#imgId').attr('src','data:image/jpg;base64,'+rslt.responseText);
    },
   success:function(){//Success
    },
   error:function(err){
        alert('Error: '+err.responseText+'\nStatus: '+err.statusText);
    }
   })
  }

[输出:]

'错误消息>指定的方法不允许针对此资源'状态:方法不允许!。

注意: ¤(我将文件名、fileUrl 保存到 Parse DataBrowser,并用它来尝试检索上传的文件。)

¤ (应用程序基于“Phonegap”)

¤ 我是 Parse/Javascript 的新手。

非常感谢!*

4

2 回答 2

0

在这里检查:将图像内容从相机加载到文件

基本上: 使用这篇文章中的信息。. 非常感谢雷蒙德卡姆登!

function gotPic(data) {

window.resolveLocalFileSystemURI(data, function(entry) {

var reader = new FileReader();

reader.onloadend = function(evt) {
    var byteArray = new Uint8Array(evt.target.result);
    var output = new Array( byteArray.length );
    var i = 0;
    var n = output.length;
    while( i < n ) {
        output[i] = byteArray[i];
        i++;
    }                
    var parseFile = new Parse.File("mypic.jpg", output);

    parseFile.save().then(function(ob) {
            navigator.notification.alert("Got it!", null);
            console.log(JSON.stringify(ob));
        }, function(error) {
            console.log("Error");
            console.log(error);
        });

}

reader.onerror = function(evt) {
      console.log('read error');
      console.log(JSON.stringify(evt));
  }

entry.file(function(s) {
    reader.readAsArrayBuffer(s);
}, function(e) {
    console.log('ee');
});

});
}
于 2013-07-11T14:39:32.817 回答
0

我认为对于您的 ajax 请求,检索图像方法应该是 GET 而不是 POST。

于 2015-09-05T19:27:12.827 回答