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