Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 大文件不能上传_Php_Mysql_Video_Upload - Fatal编程技术网

Php 大文件不能上传

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]) &

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


您应该检查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