PHP ファイルのアップロードとダウンロード
1.php.ini ?構成?
?
;;;;;;;;;;;;;;;;;;; ; Resource Limits ; <span style="white-space: normal;">资源限制</span> ;;;;;;;;;;;;;;;;;;; ; Maximum execution time of each script, in seconds ; http://php.net/max-execution-time ; Note: This directive is hardcoded to 0 for the CLI SAPI max_execution_time = 30 ; Maximum amount of time each script may spend parsing request data. It's a good ; idea to limit this time on productions servers in order to eliminate unexpectedly ; long running scripts. ; Note: This directive is hardcoded to -1 for the CLI SAPI ; Default Value: -1 (Unlimited) ; Development Value: 60 (60 seconds) ; Production Value: 60 (60 seconds) ; http://php.net/max-input-time max_input_time = 60 ; Maximum input variable nesting level ; http://php.net/max-input-nesting-level ;max_input_nesting_level = 64 ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = 128M
???max_execution_time 各スクリプト ページが実行操作を完了するまでの最大時間 (秒単位)。 -1 の場合、制限はありません
?? max_input_time 各スクリプト ページがリクエスト データを処理する最大時間、単位は秒です。 -1 の場合、制限はありません
??memory_limit スクリプト ページが消費できる最大メモリ
?
; Maximum size of POST data that PHP will accept. ; http://php.net/post-max-size post_max_size = 8M
?? PHP がフォーム POST を通じて受け取ることができる最大値 (フォーム内のすべての項目を含む)。
?
;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; http://php.net/file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; http://php.net/upload-tmp-dir upload_tmp_dir = "e:/wamp/tmp" ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 2M
?? ?file_uploads HTTP アップロードが許可されているかどうか、デフォルトはオン、つまり有効になっており、変更は必要ありません
?? ?upload_tmp_dir ファイルをアップロードするときの一時保存ディレクトリ。指定しない場合、システムのデフォルトの一時フォルダー
が使用されます。?? ?upload_max_filesize アップロードできるファイルの最大サイズ
?
2. ページ設定?3 つの条件が必須です
(1) type 属性は file
に設定されます(2) フォームの enctype="multipart/form-data"
(3) メソッド="post"
?
?
<form action="" method="post" enctype="multipart/form-data"> <input name="filename" type="file"/> <input type="submit" value="enter"/> </form>
?
???
?? 最大バイト数をアップロードできるように、アップロード フォームに隠しフィールドを追加することをお勧めします。アップロードされたファイルが 1MB を超える場合、$FILES のエラー値は 2
を返します。?
3. bool move_uploaded_file(string filename,string destination) ? この関数は、PHP でファイルをアップロードするために特別に使用されます。
???filename クライアント ソース ファイルのファイル名とパス、アップロードされたファイルの一時ファイル名、つまり $_FILES[tmp_name]
?? ?destination アップロード後にサーバーに保存された新しいパスと名前
?? move_uploaded_file() は、ファイルを別の場所に保存するためにのみ使用されます。
?? bool is_uploaded_file(string filename) ?ファイルが POST アップロードされているかどうかを判断します
?
<?php header('Content-Type:text/html;charset=utf-8'); $tmparr=$_FILES['filename']; if($tmparr['error']==0){ if (is_uploaded_file($tmparr['tmp_name'])) { if (move_uploaded_file($tmparr['tmp_name'], $tmparr['name'])) { echo "上传成功"; }else { echo "<script>alert('文件不合法');history.go(-1);</script>"; } }else { echo "<script>alert('非法操作');history.go(-1);</script>"; } }else { echo "<script>alert('上传错误,错误类型: ".$tmparr['error']."');history.go(-1);</script>"; } ?>
?? $_FILES[]['name']: ?
?? $_FILES[]['type']: ??? $_FILES[]['size']: ? ? アップロードされたファイルのバイト数
?? $_FILES[]['tmp_name']: ?アップロード後のサーバー上の一時ストレージ ファイルの名前?? $_FILES[]['error']: ?
?4. ?ダウンロードを実現する? ダウンロードを実現する最も一般的な方法は、リンクを介したダウンロードと header() 関数を介したダウンロードです。
?
echo "".$filen."
";
?
"" '' 。この 3 つをどのように組み合わせて使用しますか?
??
?
?
?
?