关于文件上传服务器down机问题。

Fan52027 2008-09-24 04:43:06
公司部署一台上传服务器让公司的同事上传文件,限制文件100m以内,服务器是普通的内存2G PC机。在测试的时候发现,如果上传100m左右的文件,上传几个之后,内存使用率急剧上升,最后导致down机,web页面用普通的form提交,请问问题是出在哪里?
...全文
99 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ten789 2008-09-26
  • 打赏
  • 举报
回复
改用FTP吧
qngzh 2008-09-25
  • 打赏
  • 举报
回复
肯定是代码问题!

hjzdhr 2008-09-25
  • 打赏
  • 举报
回复
帮顶 学习
mengshan1986 2008-09-25
  • 打赏
  • 举报
回复
是啊,使用内存查看器会发现出现很多临时文件,php上传以后没有释放内存导致的,需要完善代码
fangsp 2008-09-25
  • 打赏
  • 举报
回复
帮着顶一个
unlive 2008-09-24
  • 打赏
  • 举报
回复
我觉得http上传文件是先整个文件读进内存的吧,所以才会耗内存。
Fan52027 2008-09-24
  • 打赏
  • 举报
回复
在客户端并且是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);

  ?>
「已注销」 2008-09-24
  • 打赏
  • 举报
回复
同意。这么大的文件,最好不要用http方式上传。

最好用FTP或别的方式。
iasky 2008-09-24
  • 打赏
  • 举报
回复
看看你的php配置文件

本来文件的copy是最占cpu的
lvjx125 2008-09-24
  • 打赏
  • 举报
回复
帮顶下
乌镇程序员 2008-09-24
  • 打赏
  • 举报
回复
检查一下php.ini配置文件中下列参数设置是否恰当:
upload_max_filesize
memory_limit
max_execution_time
max_input_time
post_max_size

另外,上传这么大的文件最好不要用表单post,最好改用ftp.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧