Rumah >php教程 >php手册 >php文件上传,

php文件上传,

WBOY
WBOYasal
2016-06-13 08:50:02978semak imbas

php文件上传,

<?<span>php
    </span><span>$allowtype</span> = <span>array</span>("gif", "png", "jpg");   <span>//</span><span>设置充许上传的类型为gif, png和jpg</span>
    <span>$size</span> = 1000000;                           <span>//</span><span>设置充许大小为1M(1000000字节)以内的文件</span>
    <span>$path</span> = "./uploads";                       <span>//</span><span>设置上传后保存文件的路径
    
    //判断文件是否可以成功上传到服务器,$_FILES['myfile']['error'] 为0表示上传成功</span>
    <span>if</span>(<span>$_FILES</span>['myfile']['error'] > 0<span>) {      
        </span><span>echo</span> '上传错误: '<span>;
        </span><span>switch</span> (<span>$_FILES</span>['myfile']['error'<span>]) {
             </span><span>case</span> 1:  <span>die</span>('上传文件大小超出了PHP配置文件中的约定值:upload_max_filesize'<span>);  
            </span><span>case</span> 2:  <span>die</span>('上传文件大小超出了表单中的约定值:MAX_FILE_SIZE'<span>);  
            </span><span>case</span> 3:  <span>die</span>('文件只被部分上载'<span>); 
            </span><span>case</span> 4:  <span>die</span>('没有上传任何文件'<span>); 
            </span><span>default</span>: <span>die</span>('末知错误'<span>);
           }
    }
    
    </span><span>//</span><span>判断上传的文件是否为充许的文件类型,通过文件的后缀名</span>
    <span>$hz</span> = <span>array_pop</span>(<span>explode</span>(".", <span>$_FILES</span>['myfile']['name'<span>]));
    </span><span>//</span><span>通过判断文件的后缀方式,来决定文件是否是充许上传的文件类型</span>
    <span>if</span>(!<span>in_array</span>(<span>$hz</span>, <span>$allowtype</span><span>)) {
        </span><span>die</span>("这个后缀是<b>{<span>$hz</span>}</b>,不是充许的文件类型!"<span>);
    }
    
    </span><span>/*</span><span> 也可以通过获取上传文件的MIME类型中的主类型和子类型,来限制文件上传的类型
    list($maintype,$subtype)=explode("/",$_FILES['myfile']['type']);    
      if ($maintype=="text") {   //通过主类型限制不能上传文本文件,例如.txt .html .php等文件
        die('问题: 不能上传文本文件。');
    } </span><span>*/</span>

    <span>//</span><span>判断上传的文件是否为充许大小</span>
    <span>if</span>(<span>$_FILES</span>['myfile']['size'] > <span>$size</span><span> ) {
        </span><span>die</span>("超过了充许的<b>{<span>$size</span>}</b>字节大小"<span>);
    }
    
    </span><span>//</span><span>为了系统安全,也为了同名文件不会被覆盖,上传后将文件名使用系统定义</span>
    <span>$filename</span> = <span>date</span>("YmdHis").<span>rand</span>(100,999).".".<span>$hz</span><span>;
    
    </span><span>//</span><span>判断是否为上传文件</span>
    <span>if</span> (<span>is_uploaded_file</span>(<span>$_FILES</span>['myfile']['tmp_name'<span>])) { 
         </span><span>if</span> (!<span>move_uploaded_file</span>(<span>$_FILES</span>['myfile']['tmp_name'], <span>$path</span>.'/'.<span>$filename</span><span>)) {  
            </span><span>die</span>('问题: 不能将文件移动到指定目录。'<span>);
        }
     }</span><span>else</span><span>{
        </span><span>die</span>("问题: 上传文件{<span>$_FILES</span>['myfile']['name']}不是一个合法文件: "<span>);
    }

    </span><span>//</span><span>如果文件上传成功则输出</span>
    <span>echo</span> "文件{<span>$upfile</span>}上传成功,保存在目录{<span>$path</span>}中,大小为{<span>$_FILES</span>['myfile']['size']}字节";   

 

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn