질문은 기본 파일 업로드 기능 구현에 관한 것입니다. jQuery AJAX 및 PHP를 사용하는 인트라넷 페이지. 사용자가 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!