大文件不会上传

时间:2013-08-21 19:19:46

标签: php mysql video upload

这是我的上传系统的代码,它上传文件并将信息输入mysql,小文件工作正常,但大文件不会出现在ftp中,他们确实创建了一个mysql条目,但条目是空的

<?php
$count = 0;
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    foreach ($_FILES['files']['name'] as $i => $name) {
        if (strlen($_FILES['files']['name'][$i]) > 1) {
            if (move_uploaded_file($_FILES['files']['tmp_name'][$i], 'upload/'.$name)) {
                $count++;
            }
        }
    }
}
?>

<?php
$link = mysql_connect('server', 'user', 'pass'); 
if (!$link) {
  die('Could not connect: ' . mysql_error());
}
mysql_select_db(database);

$title = $_POST['title'];
$path= $name;
$description = $_POST['description'];

$sql = "INSERT INTO `videos` ( `id` , `title` , `path` , `description` )
VALUES (
NULL , '$title', '$path', '$description'
);";
$result=mysql_query($sql);
if(! $result )
{
 die('Could not update database: ' . mysql_error());
}
echo "Uploaded successfully\n";
mysql_close();
?>

页面

<body>
    <div class="wrap">

<form action="upload_script.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
          <form method="post" enctype="multipart/form-data">



                <input type="file" name="files[]" id="files" multiple directory="" webkitdirectory="" mozdirectory="">



<INPUT TYPE = "Text" VALUE ="title" NAME = "title">
<textarea name="description">descrtiption</textarea>
                <input class="button" type="submit" value="Upload" />
      </form> 

    </div>
    </body>
</html>

4 个答案:

答案 0 :(得分:2)

你应该检查你的php.ini upload_max_filesize。 你也看到任何错误吗?

没有足够的声誉发表评论,抱歉。

编辑:如果您是由托管解决方案托管,那么您应该无法修改此参数。

答案 1 :(得分:0)

您的问题很可能是有限的上传大小,并且由于您的代码只是假设没有任何东西可能永远失败,您永远不会看到PHP可能向您显示的错误消息。

至少,你应该有像

这样的东西
if ($_FILES['name']['error'] !== UPLOAD_ERR_OK) {
   die("Upload failed with error code " . $_FILES['name']['error']);
}

由于您显然正在进行多文件上传,因此您必须对其进行修改以处理该问题,但您需要这样的内容。

错误代码在此处定义:http://www.php.net/manual/en/features.file-upload.errors.php

您的数据库代码也容易受到SQL注入攻击,并且您的实际上传移动代码会将您的服务器打开为完全远程攻击。简而言之,您基本上是在服务器上悬挂“踢我”标志。

答案 2 :(得分:0)

  

在Netfirms,PHP_Upload限制默认设置为20MB!

如果创建具有类似相关值的php.ini不起作用,请尝试将以下内容添加到.htaccess中:

 php_value post_max_size 100M
 php_value upload_max_filesize 100M
 php_value memory_limit 64M

不保证它们会成为神奇的修复;但是,这是注入php设置的另一种方式。只有在从G1迁移超时问题时才使用最后一个 - 否则,在共享主机上,它并没有完全被微笑。

答案 3 :(得分:0)

您可以将php.ini放在脚本运行的同一文件夹中,并添加以下行:

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 64M
max_input_time = 0

max_input_time值为0表示上传期间没有超时。

理想情况下,您希望从系统中复制原始php.ini并放入根目录并递归应用该文件以通过网站应用相同的设置。

要递归设置php.ini,您必须通过.htaccess文件在服务器中设置环境变量(setenv)。