ホームページ  >  記事  >  バックエンド開発  >  php+ajax_PHPチュートリアルを使用した画像ファイルアップロード機能の例

php+ajax_PHPチュートリアルを使用した画像ファイルアップロード機能の例

WBOY
WBOYオリジナル
2016-07-13 10:24:42732ブラウズ

現在、一般的に使用されている非同期ファイル アップロード関数は、iframe フレームワーク、ajax 関数エフェクト、および flash+php 関数の使用です。以下は、ajax と iframe によって実装された非同期ファイル アップロード関数の例です。

方法 1、jquery ajaxfileupload.js を使用してファイルをアップロードします

実際には、更新不要のファイルアップロードを実現するためです。 IFRAME ファイルのアップロード原則を使用できます。
実際にPHPでファイルをアップロードするとき。 。 。 $_FILES 形式のみを使用できますが、..document.getElementById('img').value のように JS を使用して ID を取得するだけの場合は、フォーム内の jquery $("#img") は実際にはアップロードできません (ただし、最初の私を含め、これを実行している人はまだたくさんいます)。
しかし、この機能にはいわゆる「非同期アップロード」の実装も必要です。どうすればよいでしょうか?サードパーティのコンポーネントを使用するか、自分でコンポーネントを作成する (Web ページに IFRAME を埋め込む) ことのみ可能です。ただし、開発時間を考慮する場合は、サードパーティを使用することをお勧めします。これは、「ajaxfileupload.js」という優れた jQuery Ajax ファイル アップロード コンポーネントです。そのコンポーネントのダウンロード アドレスは、http://files.jb51.net/ です。 file_images /article/201306/js/ajaxfileupload.js

プロセス:

(1) フロントエンドファイルコード:test.php

コードをコピーします コードは次のとおりです:


対応する HTML は次のとおりです:


これでクライアントが完成しました。

(2)サーバー側のdoajaxfileupload.php

ここに値が本当に渡されたかどうかを簡単に検出するために、値を保存できます。

コードをコピーします コードは次のとおりです:
$file_infor = var_export($_FILES,true);
file_put_contents("d:file_infor.php".$file_infor);

このようにして、生成したばかりの file_infor.php ファイルを呼び出すと、見慣れた情報が再び表示されます:

コードをコピーします コードは次のとおりです:
array(
'name'=>'lamp.jpg',
'type'=>'image/pjpeg',
'tmp_name'= >'c :windowstempphpFA.tmp',
'error'=>0,
'size'=>3127
)

もちろん、実際の処理は次のようになります:

コードをコピーします コードは次のとおりです:
$upFilePath = "d:/";
$ok=@move_uploaded_file($_FILES['img']['tmp_name'] ,$upFilePath) ;
if($ok === FALSE){
echo json_encode('file_infor'=>'アップロード失敗');
}else{
echo json_encode('file_infor'=>'アップロード成功' );
}
?>

方法 2、iframe フレームワークを使用して写真をアップロードします

HTMLコードは次のとおりです:

コードをコピー コードは次のとおりです:







index.js ファイル:

コードをコピーします コードは次のとおりです:
$(function(){
$("#upload_file").change(function(){
$("#uploadFrom").submit() ;
}) ;
});
function stopSend(str){
var im="";
$("#msg").append (私);
}


upload.php ファイル:

コードをコピーします コードは次のとおりです:
$file=$_FILES['upfile'];
$name=rand(0,500000).dechex(rand(0,10000)).".jpg";
move_uploaded_file($file[' tmp_name'],"upload/images/".$name);
//iframe 親ウィンドウの js 関数を呼び出します
echo "<script>parent.stopSend('$name')</script>";
?>

方法3、オリジナルのAjaxファイルのアップロード

lt;meta charset= "utf-8">