ホームページ >バックエンド開発 >PHPチュートリアル >felayman——PHP_PHP チュートリアルで画像をサーバーにアップロードする
1.upload_file.php
//このファイルは、アップロードされた画像の拡張子を取得し、ファイル名をランダムに生成する役割を果たします
header("content-type:text/html;charset=utf-8");
/**
* ファイル拡張子を取得します
*ここに説明を入力してください...
* @paramunknown_type $filename
*/
関数 getFileName($filename){
//strrchr - 文字列内で指定された文字が最後に出現する箇所を検索します
return substr(strrchr($filename,'.'), 1);
}
/**
* n桁の文字列をランダムに生成します
* ここに説明を入力してください...
* @paramunknown_type $num
*/
関数 rand_str($num){
$str = "qwertyuioplkjhgfdsazxcvbnmQAZWSXEDCRFVTGBYHNUJMIKOLP1234567890";
$str_len = strlen($str)-1;
//echo$str_len;
$s='';
for ($i = 0; $i
$s.=$str[rand(0,$str_len)];
}
エコー $s;
}
?>
2.index.html
3.deal_upload.php
header("content-type:text/html;charset=utf-8");
//アップロードされたファイルの名前を取得してファイル名を生成する関数 lib
を導入します'upload_file.php' が必要です;
//ファイルを保存するディレクトリを設定します
$upload_dir = "ファイル/";
if(!file_exists($upload_dir)){
mkdir($upload_dir);
}
//アップロードするファイルの種類を設定します
$type =array('jpg','png','gif','jpeg');
//in_array — 配列内に値が存在するかどうかを確認します
if(!in_array(strto lower(getFileName($_FILES['file']['name'])), $type)){
// 内部分解し、配列を文字列に結合します
$text = implode(',', $type);
echo "<script>alert('ファイル タイプは {$text} のみ許可されています');window.location='index.html';</script>";
}その他{
//ファイル名を取得
$filename =explode('.', $_FILES['file']['name']);
$filename[0] =rand_str(10);
$name =implode('.', $filename);
http://blog.csdn.net/u012332735/article/details/$uploadfile=$upload_dir.$name;
//is_uploaded_file — ファイルが HTTP POST 経由でアップロードされたかどうかを判断します
if(is_uploaded_file($_FILES['file']['tmp_name'])){
//move_uploaded_file - アップロードされたファイルを新しい場所に移動します
if(move_uploaded_file($_FILES['file']['tmp_name'],http://blog.csdn.net/u012332735/article/details/$uploadfile)){
$file_path = getcwd().'\'.http://blog.csdn.net/u012332735/article/details/$uploadfile; echo "
エコー「
」;
echo "アップロードを続行";
}その他{
echo "アップロードに失敗しました";
}
}
}
?>