PHP 서버 측 구현으로 jQuery AJAX 파일 업로드 문제를 해결하는 방법은 무엇입니까?
PHP를 사용한 jQuery AJAX 파일 업로드: 문제 해결 및 서버측 구현
문제 설명
질문은 기본 파일 업로드 기능 구현에 관한 것입니다. 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 스크립트는
- 파일 업로드 중에 오류가 있는지 확인하고 적절한 메시지를 인쇄합니다.
- 오류가 발생하지 않으면 'move_uploaded_file' 기능을 사용하여 업로드된 파일을 임시 위치에서 'uploads' 폴더로 이동합니다.
업데이트된 jQuery 스크립트
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'로 바꿉니다.
참고
- 'uploads' 디렉토리가 존재하고 있는지 확인하세요. 쓰기 가능합니다.
- 'upload_max_filesize' 및 'post_max_size'에 대한 PHP 구성 설정을 확인하여 테스트 파일이 이러한 제한을 초과하지 않는지 확인하세요.
위 내용은 PHP 서버 측 구현으로 jQuery AJAX 파일 업로드 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example : $ email = "user@example.com"; if (f ilter_var ($ 이메일, filter_validate_email) && checkdnsrr (Explode ( '@', $ email) [1], 'mx')) {echo "validandDeliverableEmail & qu

USEARRAY_MERGE () TOCOMBINEARRAYS, DUCRITINGDUPLICATESTRINGKEYSANDENTEXINGUMERICEYS; FORSIMPLERCONCATENATION, 특히 인포드 55.6, USETHESPLATOPERATOR [... $ array1, ... $ array2].

AseUnserialize (Serialize ($ obj))는 AllDataisserializable 이하의 경우 FordeepCopying; 그렇지 않으면, ubstract__clone () tomanuallyduplicateNestEdObjectSandavoidshartReferences.

이 기사에서는 케이스 문을 사용하여 MySQL에서 조건부 집계를 수행하여 특정 필드의 조건부 합산 및 계산 방법에 대해 자세히 설명합니다. 실제 구독 시스템 사례를 통해 레코드 상태 (예 : "END"및 "CANCEL"과 같은 총 기간 및 이벤트 수를 동적으로 계산하여 복잡한 조건부 집계의 요구를 충족시킬 수없는 전통적인 합계 기능의 한계를 극복하는 방법을 보여줍니다. 튜토리얼은 합 함수로 사례 문의 적용을 자세히 분석하고 왼쪽 조인의 가능한 널 값을 다룰 때 Coalesce의 중요성을 강조합니다.

네임 스페이스 인 네임 스페이스 inphorganizecodecodecodeandnamingnamingconflictsbygroupingclasses, 인터페이스, 함수, andconstantsOnspecificname.2.defineanamesUsUsingThenamesPaceyWordAtTHETOPOFOFILE, AFFORBINSPACENAME, suchATESKEYSTOI

The__call ()는 MethodsibleorundorundeRunded에서 정의 될 때 MethodStrigged를 정의하고, themodnameandarguments, asshowningwhendingderdefinedmethodslikesayhello ()

toupdateadaBasereCordInphp, FirstConnectusingpdoorMysqli, whenEseprepredStatementStoExecuteAcureCuresqlupDateQuery.example : $ pdo = newpdo ( "mysql : host = localhost; dbname = your_database", $ username, $ username, $ sql = "squer erestemail);

useathinfo ($ filename, pathinfo_extension) togetThefileExtension; itreliablyHandleSmultipledOtsededGecases, returningTheextension (예 : "pdf") oranEmptyStringifnoneExists.
