我正在嘗試檢索文件,然後通過POST提交將其上傳到Parse.com。我的HTML:用Django傳遞文件對象
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div class="container">
<form action="" id="fileupload" name="fileupload" enctype="multipart/form-data" method="post">
{% csrf_token %}
<fieldset>
<input type="file" name="fileselect" id="fileselect" /></input>
<input type="hidden" name="myFile" id="myFile" />
<input id="uploadbutton" type="submit" value="Upload to Parse" />
</fieldset>
</form>
</div>
,並使用以下函數來檢索文件:
<script type="text/javascript">
$(function() {
var file;
// Set an event listener on the Choose File field.
$('#fileselect').bind("change", function(e) {
var files = e.target.files || e.dataTransfer.files;
// Our file var now holds the selected file
file = files[0];
document.getElementById('myFile').value = file;
});
});
</script>
但是,這種「MYFILE」字段沒有發佈該文件作爲一個對象,也不與解析API JIVE文檔,它似乎在尋找一個文件路徑名,我不認爲我可以從一臺未知的機器上獲取。
import json,httplib
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('POST', '/1/files/pic.jpg', open('myPicture.jpg','rb').read(), {
"X-Parse-Application-Id": "xxxxxxxxxxxxxxxxxxxxx",
"X-Parse-REST-API-Key": "xxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "image/jpeg"
})
result = json.loads(connection.getresponse().read())
print result
這似乎是它會是一個常見的情況,但我發現的唯一文件是爲阿賈克斯,我寧願不使用,因爲它暴露了我的API證書https://www.parse.com/questions/uploading-files-to-parse-using-javascript-and-the-rest-api。
我不確定處理文件的最佳方式是什麼......如果有方法可以在Django框架內處理,或者我需要轉換爲JSON。而且,即使在捕獲文件對象時,我也不清楚如何在文件對象中使用Parse.com API。