phpファイルのアップロードとダウンロード


phpファイルアップロード
formフォームでファイルアップロードを行う場合、PHPは事前定義変数$_を使用する必要があります.FILES
$_FILES['userfile'][name']クライアントマシンファイルの元の名前.
$_FILES['userfile'['type']ファイルのMIMEタイプ.ブラウザがこの情報を提供している場合.1つの例は「image/gif」です.ただし、このMIMEタイプはPHP側ではチェックされていないので、当然この値があるとは思わないでください.
$_FILES['userfile']['size']は、バイト単位でアップロードされたファイルのサイズです.
$_FILES['userfile'['tmp_name']ファイルがアップロードされた後、サービス側に格納された一時ファイル名.
$_FILES['userfile'][error']このファイルのアップロードに関するエラーコード
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>    </title>
</head>
<body>
<form action="upload1.php" method="post" enctype="multipart/form-data">
<div>
    <input type="file" name="textfile"><p>
    <input type="submit" value="    ">
</div>
    
</form>
</body>
</html>

対応処理のPHPコード
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/4/2
 * Time: 23:55
 */
header('content-type:text/html;charset=utf-8');
print_r($_FILES);
//1.  $_FILES              
$fileInfo=$_FILES['textfile'];
$filename=$fileInfo['name'];
$type=$fileInfo['type'];
$tmp_name=$fileInfo['tmp_name'];
$size=$fileInfo['size'];
$error=$fileInfo['error'];
if($error==UPLOAD_ERR_OK){
    if(move_uploaded_file($tmp_name, "upload/".$filename)){
        echo '  '.$filename.'    ';
    }else{
        echo '  '.$filename.'    ';
    }
}else{
    //      
    switch($error){
        case 1:
            echo '       PHP     upload_max_filesize    ';
            break;
        case 2:
            echo '     MAX_FILE_SIZE     ';
            break;
        case 3:
            echo '       ';
            break;
        case 4:
            echo '        ';
            break;
        case 6:
            echo '        ';
            break;
        case 7:
        case 8:
            echo '    ';
            break;
    }
}

 
画像ファイルをアップロードし、データを印刷します.
<?php
/**
 * Created by PhpStorm.
 * User: mac
 * Date: 16-1-2
 * Time:   8:30
 */
header("Content-type:text/html;charset=utf-8");

//                ,             ,        
$uploadPath = 'uploads/';

//        
$file = $_FILES['uploadFile'];

print_r($file);

if($file['error'] > 0)
{
    echo '      ' . $file['error'] . "<br />";
}
else
{
    echo"  :".$file['name'].'<br/>';
    echo"  :". ($file['size'] / 1024) . 'Kb<br/>';

    chmod($uploadPath, 0666);

    if(file_exists($uploadPath.$file['name'])){
        echo $file['name'] . "      !";
    }else{
        move_uploaded_file($file['tmp_name'], $uploadPath.$file['name']);
        echo '      :'.$uploadPath.$file['name'];
    }

}

##
Array
(
[name] => 634306d7jw1dvze5y1bk1j.jpg
[type] => image/jpeg
[tmp_name] =>/Applications/XAMPP/xamppfiles/temp/phpsJFa8r
[error] => 0
[size] => 36028
)
ファイル:634306 d 7 jw 1 dvze 5 y 1 bk 1 j.jpg

サイズ:35.18359375 Kb


Warning: chmod(): Operation not permitted in /Applications/XAMPP/xamppfiles/htdocs/qzone_partner/upload_file.php on line 27

ファイルは、uploads/634306 d 7 jw 1 dvze 5 y 1 bk 1 jに保存する.jpg
##
上のコードは私がクライアントから来たファイルをPHPファイル対応のフォルダの下に置いたとしか言いようがありません.主に使う関数はmove_です.uploaded_file(アップロードしたファイルを新しい場所に移動)
また、転送ファイルはpostメソッドでコミットする必要があります.is_uploaded_file($_FILES['userfile']['tmp_name'])で検出します.
これらも単純にファイルアップロードを完了するだけで、一般的に実際のプロジェクトでは異なるファイルタイプ、ファイルサイズについて判断します.
ファイルのダウンロード
ファイルのダウンロードの第1の方式はaラベルで完成して、直接hrefで対応する接続アドレスを記入します
ダウンロード1.jpg
2つ目の方法:
プログラムによって完了します.
phpはファイルの情報を得てダウンロード処理を行う:
<?php 
$filename=$_GET['filename'];
header('content-disposition:attachment;filename='.basename($filename));
header('content-length:'.filesize($filename));
readfile($filename);

head関数の場合:
Content-Disposition属性名attachmentを添付ファイルとしてダウンロード
Content-Longthヘッダは、ブラウザメッセージのエンティティボディのサイズを通知します.
readfile関数はダウンロード機能を実現するためにファイルを出力します
関連して写真の文章をアップロードします:
PHP+jQuery+Ajaxマルチピクチャアップロードhttp://www.helloweba.com/view-blog-277.html