問題圍繞在上實作基本檔案上傳功能使用jQuery AJAX 和PHP 的Intranet 頁面。使用者已設定 HTML 和 jQuery 程式碼,但在上傳檔案並將其保存在所需目錄中時遇到問題。此外,他們還尋求有關在伺服器端重命名檔案的建議。
jQuery 腳本透過 AJAX 請求將包含上傳檔案的表單傳送到伺服器端 PHP 腳本。但問題在於伺服器上缺少 PHP 腳本來處理檔案並將其移至指定的上傳目錄。
伺服器端 PHP 腳本
要解決此問題,伺服器上需要一個名為「upload.php」的 PHP 腳本。該腳本將處理文件上傳並執行必要的操作。以下是 PHP 腳本的程式碼:
<?php if (0 < $_FILES['file']['error']) { echo 'Error: ' . $_FILES['file']['error'] . '<br>'; } else { move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']); } ?>
此 PHP 腳本:
在jQuery 腳本中,URL 被修改為指向「upload.php」腳本。此外,將“dataType”變更為“text”可以顯示 PHP 腳本的回應(如果有)。更新後的腳本:
$('#upload').on('click', function() { var file_data = $('#sortpicture').prop('files')[0]; var form_data = new FormData(); form_data.append('file', file_data); alert(form_data); $.ajax({ url: 'upload.php', dataType: 'text', cache: false, contentType: false, processData: false, data: form_data, type: 'post', success: function(php_script_response){ alert(php_script_response); } }); });
在上述解決方案中,上傳的檔案保留其原始名稱。若要重新命名文件,請在 PHP 腳本中進行以下修改:
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/my_new_filename.whatever');
此行將 'uploads' 目錄中的原始文件名稱替換為 'my_new_filename.whatever'。
以上是如何使用 PHP 伺服器端實作解決 jQuery AJAX 檔案上傳問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!