PHP-文件上传

PHP的文件上传是比Java简单很多。

在php.ini配置文件中有几个关于文件上传相关的设置:

file_uploads控制是否允许文件上传
upload_tmp_dir文件上传过程的临时目录
upload_max_filesize允许上传的最大的文件大小,默认是2M
post_max_sizePOST数据的最大大小,默认是8M,序大于upload_max_filesize的设置
  

<html>
    <head>
        <meta charset="UTF-8">
        <title>Test</title>
    </head>
    <body>
    	<form action="fileupload.php" method="post" enctype="multipart/form-data">

    		<label for="filename">File:</label>
    		<input type=file name="filename" /><br/>
    		<input type=submit value="upload"/>
    	</form>	
    </body>
</html>

上面的表单提交到服务器端后,服务器端接收的相关信息时保存在$_FILES['filename']数组中的。

用var_dump()函数输出$_FILES['filename']的内容,输出结果为:


array(5) {
  ["name"]=>string(22) "boilerstrap-master.zip"
  ["type"]=>string(24) "application/octet-stream"
  ["tmp_name"]=>string(33) "D:\php\php-5.4.16\tmp\php2F92.tmp"
  ["error"]=>int(0)
  ["size"]=>int(719451)
}

根据上面的输出信息,于是可以方便获得文件的一些信息如临时文件的路径可以通过$_FILES['filename']['tmp_name']获得等。

根据这些信息,我们就能方便编写服务器端的代码处理上传的过程。

<?php
echo '<h2>File information:</h2>';
echo '<pre>';
var_dump($_FILES['filename']);
echo '</pre>';

define('UPLOAD_PATH',dirname(__FILE__).'/upload');
$path = UPLOAD_PATH.'/'.$_FILES['filename']['name'];



if(is_uploaded_file($_FILES['filename']['tmp_name'])){
	if (! move_uploaded_file($_FILES['filename']['tmp_name'], $path)) {
		echo  'Problem: Could not move file to destination directory ';
		exit;
	}else{
		echo "file is Successfully uploaded";
	}
}


$_FILES['filename']['error']保存了上传错误的error code,是数字类型的。

UPLOAD_ERROR_OK , value 0  无错误

UPLOAD_ERR_INI_SIZE, value 1 上传的文件大小超过了upload_max_file-size变量(php.ini中)保存的值

UPLOAD_ERR_FORM_SIZE , value 2 文件的大小超过了提交表单中MAX_FILE_SIZE指定的值

UPLOAD_ERR_PARTIAL , value 3 文件只上传了一部分 

UPLOAD_ERR_NO_FILE , value 4 没有发现有文件上传

UPLOAD_ERR_NO_TMP_DIR, value 6 php.ini配置中没有配置临时目录

UPLOAD_ERR_CANT_WRITE, value 7 写入磁盘错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值