php文件上传
目标:搭一个简单的http上传服务,还有客户端
环境:php-4.3
在服务端准备一个action.php,内容如下:
设置php.ini
重启apache使服务生效
客户端upload.php代码:
参考网站:
http://kb.discuz.net/index.php?title=PHP%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0
环境:php-4.3
在服务端准备一个action.php,内容如下:
<?php
// 在 4.1.0 以前的 PHP 中,需要用 $HTTP_POST_FILES 代替 $_FILES。
// 在 4.0.3 以前的 PHP 中,需要用 copy() 和 is_uploaded_file() 来代替 move_uploaded_file()。
$uploaddir = '/tmp/upload/';
$uploadfile = $uploaddir. $_FILES['file']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploaddir . $_FILES['file']['name']))
{
print "File is valid, and was successfully uploaded. Here's some more debugging info:\n";
print_r($_FILES);
}
else
{
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
print "</pre>";
?>
设置php.ini
参数 | 设置 | 说明 |
file_uploads | on | 是否允许通过HTTP上传文件的开关。默认为ON即是开 |
upload_tmp_dir | -- | 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹 |
upload_max_filesize | 2000m | 允许上传文件大小的最大值。默认为2M |
post_max_size | 2000m | 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M |
说明 | ||
一般地,设置好上述四个参数后,在网络正常的情况下,上传<=8M的文件是不成问题 | ||
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数。 | ||
max_execution_time | 3600 | 每个PHP页面运行的最大时间值(秒),默认30秒 |
max_input_time | 3600 | 每个PHP页面接收数据所需的最大时间,默认60秒 |
memory_limit | 200m | 每个PHP页面所吃掉的最大内存,默认8M |
重启apache使服务生效
客户端upload.php代码:
<?php运行upload.php,即把cookie_log.txt上传。
$ch = curl_init();
$data = array('name' => 'cookie_log.txt', 'file' => '@/home/cookie_log.txt');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/action.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
参考网站:
http://kb.discuz.net/index.php?title=PHP%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0
相关文章
- 超时问题调研 - 04 29, 2010
- php apc 问题 - 09 02, 2009
- fedora 9 小集 - 01 05, 2009
留言: