ThinkPHPとAjaxFileUploaderを組み合わせることで、更新せずにファイルをアップロードする方法を実現します
この記事の例では、ThinkPHP と AjaxFileUploader を組み合わせて使用して、更新のないファイルのアップロードを実現する方法について説明します。参考のためにみんなで共有してください。具体的な実装方法は以下のように分析されます:
まず、AjaxFileUploader プラグインは、jquery に基づいたプラグインです。このプラグインを使用してアップロードする場合、互換性の問題を心配する必要はありません。その互換性は、すべての主流ブラウザと互換性があると言えます。AjaxFileUploader+thinkphp を実装したファイルのアップロードの例を紹介します。
ThinkPHP フレームワークで AjaxFileUploader プラグインを使用して Ajax ファイル アップロードを実装し、複数のファイル形式をサポートし、ページを更新せずにアップロードします。
Lib/Action/ ディレクトリに upAction.class.php ファイルを作成します。コードは次のとおりです。
コードをコピーします コードは次のとおりです:
クラス upAction は BaseAction{
を拡張します
パブリック関数インデックス(){
$this->display();
}
/*
*@文件上传
*@author FineYi
*@日付 2013-01-23
*/
パブリック関数 upLoadFile(){
$error = "";
$msg = "";
$fileElementName = 'アップロードするファイル';
if(!empty($_FILES[$fileElementName]['error'])){
switch($_FILES[$fileElementName]['error']){
ケース「1」:
$error = 'アップロードされたファイルはphp.iniのupload_max_filesizeディレクティブを超えています';
休憩;
ケース「2」:
$error = 'アップロードされたファイルは、HTML フォームで指定された MAX_FILE_SIZE ディレクティブを超えています';
休憩;
ケース「3」:
$error = 'アップロードされたファイルは部分的にのみアップロードされました';
休憩;
ケース「4」:
$error = 'ファイルはアップロードされませんでした。';
休憩;
ケース「6」:
$error = '一時フォルダーが見つかりません';
休憩;
ケース「7」:
$error = 'ファイルをディスクに書き込めませんでした';
休憩;
ケース「8」:
$error = '拡張機能によりファイルのアップロードが停止されました';
休憩;
ケース「999」:
デフォルト:
$error = '利用可能なエラー コードはありません';
}
}elseif(empty($_FILES['fileToUpload']['tmp_name']) || $_FILES['fileToUpload']['tmp_name'] == 'none'){
$error = 'ファイルはアップロードされませんでした。';
}その他{
$re = $this->up();
if(!$re){
$error = 'ファイルのアップに失敗しました';
}
$msg = $re['保存名']; //文件名
$path = '/upload/bizcoop/'.$msg; //文件路径
$size = $re['サイズ']; //文章大小
}
echo json_encode(array('error'=>$error,'msg'=>$msg,'path'=>$path,'size'=>$size));exit;
}
プライベート関数 up(){
import('@.Org.UploadFile');// 上传类UploadFile.class.phpファイル到Lib/Org文件夹下
$upload=new UploadFile();
$upload->maxSize='-1';//默认は-1,無制限上传大
$upload->savePath= ICTSPACE_DIST_ROOT_PATH.'/www/upload/bizcoop/';// パスを保存します
$upload->saveRule=uniqid;//アップロードされたファイルのファイル名保存ルール
$upload->uploadReplace=true; //同名のファイルが存在する場合、上書きするかどうか
$upload->allowExts=array('jpg','jpeg','png','gif') //アップロードできるファイルの種類
If($upload->upload()){
$info=$upload->getUploadFileInfo();
return $info[0];
}その他{
false を返す;
終了します;
}
}
}
?>
/Tpl/default/Up/ ディレクトリにindex.tpl ファイルを作成します。コードは次のとおりです:
コードをコピーします コードは次のとおりです:
Ajax ファイルアップロードのデモ