Php 大文件不能上传
这是我的上传系统的代码,它上传一个文件并将信息输入mysql,小文件可以正常工作,但大文件不会出现在ftp中,它们会创建一个mysql条目,但条目是空的Php 大文件不能上传,php,mysql,video,upload,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]) &
<?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();
?>
您应该检查php.ini中的upload\u max\u filesize
。
另外,您是否看到任何错误
没有足够的声誉来评论,抱歉
编辑:如果您是由托管解决方案托管的,那么您应该无法修改此参数。您的问题很可能是上载大小有限,并且由于您的代码只是假设没有任何东西可能会失败,因此您永远不会看到PHP可能向您显示的错误消息
至少,你应该有
if ($_FILES['name']['error'] !== UPLOAD_ERR_OK) {
die("Upload failed with error code " . $_FILES['name']['error']);
}
因为你显然是在做多文件上传,你必须修改这个来处理,但你需要这样的东西
此处定义了错误代码:
您的数据库代码也容易受到SQL注入攻击,而您的实际上载移动代码将使您的服务器面临完全的远程危害。简而言之,你基本上是在你的服务器上挂一个“踢我”的标志
在Netfirms,PHP_上传限制默认设置为20MB
如果创建具有类似对应值的php.ini不起作用,请尝试将以下内容添加到.htaccess中:
php_value post_max_size 100M
php_value upload_max_filesize 100M
php_value memory_limit 64M
不能保证它们会是一个魔术;但是,这是注入php设置的另一种方式。仅当您从G1迁移时遇到超时问题时才使用最后一个选项-否则,在共享主机上,它不会被完全忽略。您可以将php.ini放在脚本运行的同一文件夹中,并添加以下行:
upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 64M
max_input_time = 0
最大输入时间值为0表示上载过程中没有超时
理想情况下,您希望从系统中复制原始php.ini,并将其放入根目录中,然后递归地应用该文件,以便通过网站应用相同的设置
要递归设置php.ini,您必须通过.htaccess文件在服务器中设置环境变量(setenv)。打开错误,是否看到任何错误?可能与最大上传大小有关。我没有php.ini,我使用netfirms托管,它在控制面板中的某个位置吗?这是我的.htaccess。我把代码放在哪里?选项+FollowSymLinks顺序允许,拒绝RewriteCond%{REQUEST_FILENAME}上的所有RewriteEngine-f RewriteRule^([^\.]+?)\/$$1.php[NC,L]一些托管公司将为您提供可以使用默认设置修改的will php.ini文件。
upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 64M
max_input_time = 0