关于文件上传服务器down机问题。 公司部署一台上传服务器让公司的同事上传文件,限制文件100m以内,服务器是普通的内存2G PC机。在测试的时候发现,如果上传100m左右的文件,上传几个之后,内存使用率急剧上升,最后导致down机,web页面用普通的form提交,请问问题是出在哪里? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 检查一下php.ini配置文件中下列参数设置是否恰当:upload_max_filesizememory_limitmax_execution_timemax_input_timepost_max_size另外,上传这么大的文件最好不要用表单post,最好改用ftp. 看看你的php配置文件本来文件的copy是最占cpu的 同意。这么大的文件,最好不要用http方式上传。最好用FTP或别的方式。 在客户端并且是web上面,如何能通过FTP上传??在网上看到这个这个帖子:这个只是使用于一台PHP服务器传到另外一台。不可能在page上运行PHP脚本吧二、利用FTP功能进行文件上传 这段代码同样分为两个文件,一个为upload.php,一个是ftp.php。 设置ftp的相关选项及选择上传文件名:upload.php 代码如下: -------------------------------------------------------------------------------- <?php $username=\"用户名\"; $password=\"用户密码\"; $server=\"主机名\"; $cdir=\"上传目录名\" ; //以上设置你的FTP主机名、用户名和用户密码 ?> <!-- 文件上传设置标签 --> <form enctype=\"multipart/form-data\" action=ftp.php method=post> <!-- 传递变量 --> <input type=hidden name=username value=<? echo $username; ?>> <input type=hidden name=password value=<? echo $password; ?>> <input type=hidden name=server value=<? echo $server; ?>> <input type=hidden name=cdir value=<? echo $cdir; ?>> <table> <tr> <td>上传文件选择 <input type=file name=upfile> </td> </tr> <tr> <td> <!-- 提交表单 --> <input type=submit name=action value=上传> </td> </tr> </table> </form> -------------------------------------------------------------------------------- 处理上传文件:ftp.php 代码如下: -------------------------------------------------------------------------------- <?php //ftp联接主机函数 function connect() { global $server, $username, $password; $conn = ftp_connect($server); ftp_login($conn, $username, $password); return $conn; } //建立ftp联接 $result = connect(); if ($action == \"上传\") { //用来改变ftp路径 ftp_chdir($result, $cdir); //用来上传指定的文件,同名并以二进制位传递 $res_code = ftp_put($result, $upfile_name, $upfile, FTP_BINARY); // 判断是否正确上传 if ($res_code == 1) echo \"上传成功!\"; else echo \"上传错误!\"; } // 关闭联接 ftp_quit($result); ?> 我觉得http上传文件是先整个文件读进内存的吧,所以才会耗内存。 是啊,使用内存查看器会发现出现很多临时文件,php上传以后没有释放内存导致的,需要完善代码 mysq不能插入汉字,请大家帮忙解决下??? 一个简单的PHP问题 php怎么实现这样的功能阿 PHP网站出错在哪里? 怎么样将一段文章分段显示? 为什么include("test.inc"),老是报错"parse error, unexpected T_INCLUDE in..." 字符串替换问题 求救!我在一个页面提交表单写数据库,但是我删除刚刚提交的数据,在刷新后页面会自动提交,为何??? 大家帮出个思路,关于排序的问题! 新手求教 PHP+mysql 用cookie和session实现7天免登录的功能 关于正则问题 PHP的网页采集问题,大家帮帮忙
upload_max_filesize
memory_limit
max_execution_time
max_input_time
post_max_size另外,上传这么大的文件最好不要用表单post,最好改用ftp.
二、利用FTP功能进行文件上传
这段代码同样分为两个文件,一个为upload.php,一个是ftp.php。
设置ftp的相关选项及选择上传文件名:upload.php 代码如下:
--------------------------------------------------------------------------------
<?php
$username=\"用户名\";
$password=\"用户密码\";
$server=\"主机名\";
$cdir=\"上传目录名\" ;
//以上设置你的FTP主机名、用户名和用户密码
?>
<!-- 文件上传设置标签 -->
<form enctype=\"multipart/form-data\" action=ftp.php method=post>
<!-- 传递变量 -->
<input type=hidden name=username value=<? echo $username; ?>>
<input type=hidden name=password value=<? echo $password; ?>>
<input type=hidden name=server value=<? echo $server; ?>>
<input type=hidden name=cdir value=<? echo $cdir; ?>>
<table>
<tr>
<td>上传文件选择
<input type=file name=upfile>
</td>
</tr>
<tr>
<td>
<!-- 提交表单 -->
<input type=submit name=action value=上传>
</td>
</tr>
</table>
</form>
--------------------------------------------------------------------------------
处理上传文件:ftp.php 代码如下:
--------------------------------------------------------------------------------
<?php
//ftp联接主机函数
function connect()
{
global $server, $username, $password;
$conn = ftp_connect($server);
ftp_login($conn, $username, $password);
return $conn;
}
//建立ftp联接
$result = connect();
if ($action == \"上传\")
{
//用来改变ftp路径
ftp_chdir($result, $cdir);
//用来上传指定的文件,同名并以二进制位传递
$res_code = ftp_put($result, $upfile_name, $upfile, FTP_BINARY);
// 判断是否正确上传
if ($res_code == 1)
echo \"上传成功!\";
else
echo \"上传错误!\";
}
// 关闭联接
ftp_quit($result);
?>