Heim  >  Artikel  >  php教程  >  PHP-Studiennotizen: Datei-Upload (einschließlich Festlegen der Größenbeschränkung für den Datei-Upload)

PHP-Studiennotizen: Datei-Upload (einschließlich Festlegen der Größenbeschränkung für den Datei-Upload)

WBOY
WBOYOriginal
2016-09-12 17:27:311156Durchsuche

Was ich heute geschrieben habe, betraf das Hochladen von Dateien. Ich habe die richtigen Regeln vergessen, die ich vor ein paar Tagen gelernt habe, also habe ich das Format auf eine sehr dumme Weise beurteilt und den Code direkt eingegeben:

<?<span style="color: #000000;">php
</span><span style="color: #008000;">/*</span><span style="color: #008000;">*
 * Created by PhpStorm.
 * User: Administrator
 * Date: 16-9-12
 * Time: 上午10:01
 *
 * 文件上传
 *
 </span><span style="color: #008000;">*/</span>




?>


    <form action="upload.php" method="post" enctype="multipart/form-data"><span style="color: #000000;">
        上传文件:</span><input type="file" name="file" id="file">
        <br/>
        <input type="submit" name="subbtn" value="上传">
    </form>


<?<span style="color: #000000;">php

</span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_POST</span>['subbtn'<span style="color: #000000;">])){

    </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$_FILES</span>['file']['type']."<br/>"<span style="color: #000000;">;

    </span><span style="color: #008000;">/*</span><span style="color: #008000;">
     * JPG image/jpeg
     * GIF image/gif
     * PNG image/png
     *
     </span><span style="color: #008000;">*/</span>



    <span style="color: #008000;">//</span><span style="color: #008000;">文件上传处理程序:
    //$_FILES['file']['type']  上传文件的类型
    //$_FILES['file']['size']  上传文件的大小

    //$_FILES['file']['error']  上传错误代码
    //$_FILES['file']['name']   上传文件名

    //$_FILES['file']['tmp_name'] 临时文件名
//$fileName="a.TXT";
//$pos = strrpos($fileName,".");
//$ext = strtolower(substr($fileName,$pos));
//</span>

    <span style="color: #800080;">$file</span> = <span style="color: #800080;">$_FILES</span>['file'<span style="color: #000000;">];
    </span><span style="color: #800080;">$fileName</span>=<span style="color: #800080;">$file</span>['name'<span style="color: #000000;">];
    </span><span style="color: #0000ff;">echo</span> '后缀切割前:'.  <span style="color: #800080;">$file</span>['name']."<br/>"<span style="color: #000000;">;
    </span><span style="color: #008000;">//</span><span style="color: #008000;">确定最后一个.出现的位置</span>
    <span style="color: #800080;">$pos</span> = <span style="color: #008080;">strrpos</span>(<span style="color: #800080;">$file</span>['name'],'.'<span style="color: #000000;">);
    </span><span style="color: #008000;">//</span><span style="color: #008000;">转换文件名为小写</span>
    <span style="color: #800080;">$ext</span> = <span style="color: #008080;">strtolower</span>(" <span style="color: #800080;">$fileName</span>"<span style="color: #000000;">);
    </span><span style="color: #008000;">//</span><span style="color: #008000;">提取文件名后缀</span>
    <span style="color: #800080;">$fileExten</span>=<span style="color: #008080;">substr</span>(<span style="color: #800080;">$ext</span>,<span style="color: #800080;">$pos</span>+2<span style="color: #000000;">);

    </span><span style="color: #008000;">//</span><span style="color: #008000;">判断文件后缀时候符合特定要求,这里设置为:jpg jpeg doc</span>
    <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$fileExten</span>=='jpg'||<span style="color: #800080;">$fileExten</span>=='jpeg'||<span style="color: #800080;">$fileExten</span>=='doc'<span style="color: #000000;"> ){

        </span><span style="color: #0000ff;">echo</span> "文件后缀:". <span style="color: #800080;">$fileExten</span>. "<br/>"<span style="color: #000000;">;
        </span><span style="color: #0000ff;">echo</span> "文件类型:". <span style="color: #800080;">$file</span>['type']."<br/>"<span style="color: #000000;">;
        </span><span style="color: #0000ff;">echo</span> "文件大小:". <span style="color: #800080;">$file</span>['size']."<br/>"<span style="color: #000000;">;
        </span><span style="color: #0000ff;">echo</span> "错误代码:". <span style="color: #800080;">$file</span>['error']."<br/>"<span style="color: #000000;">;
        </span><span style="color: #0000ff;">echo</span> "文件名:". <span style="color: #800080;">$file</span>['name']."<br/>"<span style="color: #000000;">;
        </span><span style="color: #0000ff;">echo</span> "临时文件名:". <span style="color: #800080;">$file</span>['tmp_name']."<br/>"<span style="color: #000000;">;

        </span><span style="color: #008080;">move_uploaded_file</span>(<span style="color: #800080;">$file</span>['tmp_name'], "files/".<span style="color: #800080;">$file</span>['name'<span style="color: #000000;">]);

    }</span><span style="color: #0000ff;">else</span>
        <span style="color: #0000ff;">echo</span> "文件格式不对"<span style="color: #000000;">;
}

</span>?>

Wenn das Format falsch ist, wird es direkt abgefangen.

Wenn Sie die Größenbeschränkung für hochgeladene Dateien ändern möchten, können Sie auf die folgenden Methoden zurückgreifen:

1. Allgemeiner Datei-Upload, es sei denn, die Datei ist sehr klein, wie eine 5-Millionen-Datei, das Hochladen kann mehr als eine Minute dauern.
Aber in PHP beträgt die standardmäßige maximale Ausführungszeit dieser Seite 30 Sekunden. Das heißt, wenn die Dauer 30 Sekunden überschreitet, wird die Ausführung des Skripts gestoppt
Dies führt dazu, dass die Webseite nicht geöffnet werden kann. Zu diesem Zeitpunkt können wir max_execution_time
ändern und nach
max_execution_time suchen
in php.ini ist standardmäßig 30 Sekunden. Ändern Sie es auf
max_execution_time = 0
0 bedeutet keine Begrenzung
2. Ändern Sie post_max_size, um die maximal zulässige Größe für POST-Daten festzulegen. Diese Einstellung wirkt sich auch auf Datei-Uploads aus.
Die standardmäßige post_max_size von PHP ist 2M. Wenn die POST-Datengröße größer als post_max_size ist, sind die Superglobals $_POST und $_FILES leer.
Ändern Sie sie in
post_max_size = 150M.
3. Viele Leute werden es ändern. Beim Hochladen von Dateien beträgt die maximale Größe jedoch immer noch 8 MB. Warum müssen wir auch einen Parameter upload_max_filesize ändern, um die maximale Größe der hochgeladenen Datei anzugeben?
Suchen Sie nach upload_max_filesize, der Standardwert ist 8M und ändern Sie ihn in
upload_max_filesize = 100M
Außerdem ist zu beachten, dass post_max_size größer als upload_max_filesize ist

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP-Namespace (Namespace)Nächster Artikel:PHP-Namespace (Namespace)