Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 move#u uploaded_file()无法使用有效的[';tmp#u名称';]_Php_Mysql - Fatal编程技术网

Php move#u uploaded_file()无法使用有效的[';tmp#u名称';]

Php move#u uploaded_file()无法使用有效的[';tmp#u名称';],php,mysql,Php,Mysql,这使我困惑。出于某种奇怪的原因,move_uploaded_file()不会将文件放入目录,但它会返回一个有效的tmp_名称和名称。因此,在本例中,$file始终=为false 不管怎样,有人能指出这个代码的一些问题吗?我们将不胜感激 <?php include 'realtydevkit.php'; session_start(); $name = $_FILES['yourlogo']['name']; $tmpname = $_FILES['yourlogo']['tmp_n

这使我困惑。出于某种奇怪的原因,move_uploaded_file()不会将文件放入目录,但它会返回一个有效的tmp_名称和名称。因此,在本例中,$file始终=为false

不管怎样,有人能指出这个代码的一些问题吗?我们将不胜感激

    <?php
include 'realtydevkit.php';
session_start();
$name = $_FILES['yourlogo']['name'];
$tmpname = $_FILES['yourlogo']['tmp_name'];

if ($name) {
    $directory = $name;
    $userid = $_SESSION['userid'];
    $type = "logo";

    $file = move_uploaded_file($tmpname, $directory);

    if ($file == true) {    
    mysql_query("INSERT INTO usercontent
    (`userid`, `type`, `url`) VALUES
    ('$userid', '$type', '$directory')");
    echo 'Uploaded';
    echo "<img src='".$directory."'/>";
    } else {
    echo 'There was an error moving the file.';
    }
}


?>


您也没有检查
$\u文件['yourlogo']['error']

以下是您使用上载的文件检查的内容:

  • 检查
    $\u文件['yourlogo']['error']
    。如果是
    UPLOAD\u ERR\u OK
    (0),则继续
  • 检查
    是否上传了文件($\u文件['yourlogo']['tmp\u name'])
    。如果失败,PHP不知道出了什么问题,但它不信任该文件
  • 组装目标路径
  • 使用
    移动上传的文件()
  • 如果
    move\u upload\u file()
    出错,则PHP无法在目标位置写入文件。这通常是无效路径或没有权限

    请注意,
    $\u FILES['yourlogo']['name']
    是上传者电脑上的文件名。它不应该有任何路径信息。

    
    
    <?php
    include 'realtydevkit.php';
    session_start();
    $name = $_FILES['yourlogo']['name'];
    $tmpname = $_FILES['yourlogo']['tmp_name'];
    if ($name) {
        $directory = $name;
        $userid = $_SESSION['userid'];
        $type = "logo";
        $file = move_uploaded_file($tmpname, "path of ur directore/".$directory);
        if ($file == true) {    
        mysql_query("INSERT INTO usercontent
        (`userid`, `type`, `url`) VALUES
        ('$userid', '$type', '$directory')");
        echo 'Uploaded';
        echo "<img src='".$directory."'/>";
        } 
       else 
       {
        echo 'There was an error moving the file.';
        }
    }
    
    
    ?>
    

    您的目的地只是一个文件名,路径如何。注意:
    $directory
    易受SQL注入攻击<代码>$directory=mysql\u real\u escape\u字符串($name)
    还要注意,您不能将直接未筛选的
    $name
    用作
    移动上传的文件()的目标文件名。这将为您打开一个巨大的窗口,允许用户将文件写入文件系统中的多个位置。我只是想让它先起作用。因为问题的关键是为什么文件没有出现在目录中。并且不需要在@Dagon中指定路径。这个名称就足够了,因为它将出现在同一个文件夹中。这是在不同的服务器上使用完全相同的代码,工作非常好。(在此服务器上不工作)好的,很有帮助,但UPLOAD_ERR_OK显示为0,tmp_名称在我回显时出现,并且,目标路径是正确的,因为它可以是名称和根文件夹。如果它与权限有关,如何允许访问?这是一条有效的路径,所以。。。我正在使用CENTOS和Parallels Plesk与PHP和MySQLIt,它需要指向web服务器可以写入的目录。另外,尝试
    ini\u集(“显示错误”,1)在脚本的早期。您可能没有看到它试图显示的错误。请看,是的,但是,$name是根目录,可以在另一台服务器上使用此代码。如何特别指出web服务器可以写入的目录。如果现有web服务器可以正常写入根目录(
    /
    ),则现有web服务器已严重损坏。我并不奇怪这在你的新服务器上不起作用。要使函数正常工作,只需在
    $name
    前面预先添加一个有效目录
    /tmp
    如果您没有更好的位置可立即使用,则可以使用。