0

这是我的上传系统的代码,它上传文件并将信息输入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

4 回答 4

2

你应该检查你的 php.ini 文件upload_max_filesize。您还看到任何错误吗?

没有足够的声誉来发表评论,对不起。

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

于 2013-08-21T19:25:33.037 回答
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 注入攻击,并且您的实际上传移动代码正在打开您的服务器以进行完全远程攻击。简而言之,你基本上是在你的服务器上挂了一个“踢我”的牌子。

于 2013-08-21T19:26:48.187 回答
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 迁移时遇到超时问题时才使用最后一个 - 否则,在共享主机上,它并没有完全被微笑。

于 2013-08-21T19:31:46.490 回答
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)。

于 2013-08-21T20:08:46.997 回答