我一直在試圖創建一個註冊表單,要求學生在最後上傳文檔。但是,通過jQuery獲取表單值後,PHP文檔似乎無法獲取我上傳的表單。有任何想法嗎?PHP不能拿起文件
形式:
<form id="joinUs" enctype="multipart/form-data" method="post">
<!--various form fields-->
<input type="file" name="transcript" id="transcript">
<div class="button" id="submit">Submit!</div>
</form>
的jQuery:
$("#submit").click(function(){
//firstName, lastName, grade, studentID, email, phone are all form values
var data = "firstName="+firstName+"&lastName="+lastName+"&grade="+grade+"&studentID="+studentID+"&email="+email+"&phone="+phone;
$.ajax({
type: "POST",
url: "join_submit.php",
data: data,
success: function() {
location.href="http://mvcsf.com/new/success.php";
}
});
join_submit.php
$allowedExtensions = array("pdf");
$max_filesize = 20000;
$upload_path = "docs/transcripts";
$filename = $_FILES["transcript"]["name"];
$filesize = $_FILES["transcript"]["size"];
$extension = $_FILES["transcript"]["type"];
if ($_FILES["transcript"]["error"] > 0) {
echo "Error: " . $_FILES["transcript"]["error"] . "<br />";
}
else if((in_array($extension, $allowedExtensions)) && ($filesize < $max_filesize)) {
move_uploaded_file($_FILES["transcript"]["tmp_name"], $upload_path . $filename);
}
我跑了這一點,我沒有錯誤。我也嘗試打印出文件名,除了沒有打印出來。
可能重複的[我怎樣才能上傳文件與jQuery異步?](http://stackoverflow.com/questions/166221/how-can-i-upload-files-asynchronously-with-jquery) – hjpotter92
您需要以FormData()方式傳遞文件。否則文件不會在另一端獲得 –
想到的唯一的東西是,你測試了一個大於或小於'20000'的文件嗎?這不是很大,20,000字節。如果是這樣,那麼這是停止上傳的一件事。其次,嘗試在'$ upload_path =「docs/transcripts」;''''uploadspath =「docs/transcripts /」;「''末尾添加正斜槓並確保該文件夾具有寫入權限,夾。 –