ホームページ  >  記事  >  バックエンド開発  >  PHP 画像とファイルのバッチ アップロード コード_PHP チュートリアル

PHP 画像とファイルのバッチ アップロード コード_PHP チュートリアル

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

PHP 画像とファイルのバッチ アップロード コード

ファイルや写真のバッチ アップロードであっても、最初に行うことは、HTML で name=userfile[] のような配列変数を作成することです。 for ($_i=0 ; $_i<$_cont; $_i++) をトラバースして、ファイルをバッチでアップロードできるようにする例を見てみましょう

代码如下

session_start();
?>


<頭>

PHP文件批量上传
<スタイル>
* {マージン:0; パディング:0;リストスタイル:なし;}
.content {幅:400px;高さ:自動;マージン:0 自動;マージントップ:60px;パディングボトム:30px;背景:#ffd3b6;ボーダー:破線 1px #f90}
.content h1 {幅:400ピクセル;高さ: 30ピクセル;行の高さ:30px; テキスト整列:中央; font-family:"微软雅黑";フォントサイズ:14px;カラー:#000}
.content .error {幅:300px;高さ:自動;行の高さ:30px;テキスト整列:中央;マージン:0 自動;カラー:#f00}
.content .con {幅:340px;高さ:自動;マージン:0 自動; font-size:12px;}
.content #file {幅:280px;高さ:20ピクセル;境界線:実線 1px #ccc;背景:#fff;マージン:10px 0px 6px 0; font-size:12px;}
.content #send {幅:60px;高さ:22ピクセル;境界線:実線 1px #ccc;背景:#fff; フォントサイズ:12px; margin-top:10px;}


<スクリプト>
$(document).ready(function() {
$('#cont').val($('.file #file').size());
$('#send').eq(0).click(function() {
var filesize=$('.file #file').size();
$('.file').append("");
$('#cont').val(ファイルサイズ+1);
});
});




PHP文件批量上传




if ($_GET['up']==up) {
// 重复提交を防止します
if ($_SESSION['file']==$_GET['irand']) {
$_cont=intval($_POST['cont']);   // 将ファイル框总数受信收并转换整型
$_size=20000;                    //設置制限文件大小
$_dir='pdir/';                   //文件保存目录
関数サイズ($_size) {
// 文書サイズが 1024bit より大きいかどうかを判断し、結果が大きい場合は、サイズを KB として取得します。 if ($_size>1024*1024) {
ラウンド($_size/1024/1024,2)を返します。 MB';
}else if ($_size>1024) {
$_size=$_size/1024;
return ceil($_size).'KB';
}その他{
$_size を返します。ちょっと';
}
}
// 上に配置する画像の種類、上に配置する画像のサイズ
$_upfiles = array('image/jpeg','image/pjpeg','image/png','image/x-png','image/gif');
//循環上传文件に利用
for ($_i=0; $_i<$_cont; $_i++) {
if (is_array($_upfiles)) {
if (!in_array($_FILES['userfile']['type'][$_i],$_upfiles)) {
exit('ファイルは jpg、png、gif の形式でアップロードしてください
Return');
}
}
//ファイルサイズを決定します
if ($_FILES['userfile']['size'][$_i]>$_size) {
exit('アップロードされるファイルは次を超えることはできません:'.size($_size));
}
// ファイルがアップロードされたかどうかを確認します
if ($_FILES['userfile']['error'][$_i]>0) {
スイッチ ($_FILES['userfile']['error'][1]) {
ケース1: echo 'アップロードされたファイルはphp.iniのupload_max_filesizeオプションの制限を超えています';
休憩;
ケース 2: echo 'アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています';
休憩;
ケース 3: echo 'ファイルの一部のみがアップロードされました';
休憩;
ケース 4: echo 'ファイルがアップロードされていません';
休憩;
ケース 6: echo '一時フォルダーが見つかりません';
休憩;
ケース 7: echo 'ファイルの書き込みに失敗しました';
休憩;
}
終了します;
}
//ファイル拡張子を取得します
if (!is_dir($_dir)) {
mkdir($_dir,0700);
}
//エッセイの数を生成します
$_rand=mt_rand(0,100000);
//ファイル拡張子を取得します
$_n=explode('.',$_FILES['userfile']['name'][$_i]) //ファイル名を分割します
$_file_len=count($_n); //配列の長さを返します
// 取得した拡張子が最後のものであることを確認してください
$_name=$_dir.time().'_'.$_rand.'.'.$_n[$_file_len-1];
//指定したディレクトリにファイルを移動します
if (is_uploaded_file($_FILES['userfile']['tmp_name'][$_i])) {
if (!@move_uploaded_file($_FILES['userfile']['tmp_name'][$_i],$_name)) {
exit('ファイルの移動に失敗しました');
}その他{
echo 'ファイルは正常にアップロードされました
';
echo 'ファイルパス:'.$_name.'
';
echo 'ファイル サイズ:'.size(filesize($_name));
echo '
戻ってアップロードを続行';
}
}その他{
exit('アップロードされた一時ファイルが存在しないため、指定されたフォルダーにファイルを移動できません');
}
}
//セッション変数を破棄するにはいくつかの方法があります
//最初のメソッド、すべてのセッション変数を破棄します: session_destroy();
// 2 番目のタイプ: $_SESSION['file']=''
のような単一のアイテムを破棄します。 session_destroy();
終了します;

}その他{
exit('すでに送信済みのため、再度送信することはできません
Return');
}
}
?>


" method="post" enctype="multipart/form-data">
















核心原理分析

複数のファイルをアップロードする際、フロントデスクにとって最も重要なことは

コードは次のとおりです




これらのコード行の詳細を知っている友人は、name="userfile[]" を見つけるでしょう。これは配列に保存されているため、js を使用する場合は、次のように追加することもできます。

複数ファイルのアップロードではPHP処理が鍵となります

コードは次のとおりです
for ($_i=0; $_i if (is_uploaded_file($_FILES['userfile']['tmp_name'][$_i])) {
if (!@move_uploaded_file($_FILES['userfile']['tmp_name'][$_i],$_name)) {
exit('ファイルの移動に失敗しました');
}その他{
echo 'ファイルは正常にアップロードされました
';
echo 'ファイルパス:'.$_name.'
';
echo 'ファイル サイズ:'.size(filesize($_name));
echo '
戻ってアップロードを続行';
}
}
ここでの表示は非常に単純です。for が配列を走査し、userfile[] 配列を走査し、$_FILES['userfile']['tmp_name'][$_i] を使用して取得していることがわかります。 [$_i] は複数ファイルのアップロード項目であり、配列に保存されるだけであることに注意してください。

http://www.bkjia.com/PHPjc/873234.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/873234.html技術記事 PHP 画像とファイルのバッチ アップロード コード。ファイルまたは画像のバッチ アップロードのいずれであっても、最初に行うことは、HTML での name=userfile[] のような配列変数を作成することです。 ; $...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。