ホームページ >バックエンド開発 >PHPチュートリアル >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 スクリプト:
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 中国語 Web サイトの他の関連記事を参照してください。