首先,我搜索了很多關於這方面的主題,而我不想使用任何插件。使用Ajax上傳文件 - FormData
function addToDatabase(menuItem){
var formData = new FormData();
formData.append("Description", document.getElementById("DescriptionID").value);
jQuery.each($('#filesID')[0].files, function(i, file) {
formData.append('file-'+i, file);
});
$.ajax({
type: "POST",
url: "dbAdder.php",
data: formData,
cache: false,
contentType: false,
processData: false,
success: function(result){
$("#PageContent").html(result);
}
});
}
Js函數發送給服務器的東西。雖然在服務器端代碼$_POST['Description']
有價值,但$_FILES['file-0']
does not。
<input type="file" id="filesID" name="files[]" multiple />
<textarea id="DescriptionID" rows="5" cols="53"></textarea>
HTML部分代碼。
有沒有解決方案。每個通過Ajax的文件上傳都涉及諸如iFrames之類的黑客。你對每個單獨的插件有什麼問題?有機會,沒有插件,你會遇到同樣的問題。 – dotancohen
因爲我不確定插件是如何工作的,如果插件的所有者在將其發送到我的服務器之前有權訪問我的數據。並且該代碼將只能看到原始網頁的數據庫的版主。 – Crackeraki
然後在解僱他們之前閱讀jQuery插件如何工作。 – dotancohen