move_uploaded_file(...):无法打开流:没有这样的文件或目录

时间:2015-12-31 05:10:49

标签: php mysql

我尝试使用PHP和MySQL在我的数据库中插入带有临时文件夹的图像。

我使用laravel,这是我的控制器:

if(isset($_FILES['img_masc']))
{
    $img=$_FILES['img_masc']['name'];
    $ruta= $_FILES['img_masc']['tmp_name'];
}

$destino='../../../Perf_Masc/'.$img;
$masc->img=$destino;
//copy($ruta, $destino);
move_uploaded_file($ruta, $destino); //line 49

这是我的观点:

<form method="POST" action="/RegMasc" enctype= "multipart/form-data" >
    <div>
        <input required name="img_masc" type="file"/>
    </div>

这是我的错误:

  

第49行中的ErrorException:   move_uploaded_file(../../../ Perf_Masc / AF5.jpg):无法打开流:没有这样的文件或目录

我尝试了很多东西,也尝试了复制功能,但无论如何都不能正常工作

2 个答案:

答案 0 :(得分:8)

在您的Config文件或某个常用文件中定义您的路径,如下所示

define('DOCROOT', $_SERVER['DOCUMENT_ROOT'].'<YOUR PROJECT DIRECTORY>/');

在所有类文件中包含此常用php。

然后

 $destino= DOCROOT.'Perf_Masc/'.$img; // HERE DOCROOT is defined in config.

答案 1 :(得分:1)

将正斜杠更改为反斜杠。

首先定义这些

//Define back slash so that you can use it anywhere later
defined("DS") ? null : define("DS", DIRECTORY_SEPARATOR);
// Define your website siteroot
defined("SITE_ROOT") ? null : define("SITE_ROOT", "C:".DS."wamp".DS."www".DS."your_website");

现在移动你的文件

$file_name=$_FILES['file']['name'];
$file_tmp=$_FILES['file']['tmp_name'];
$file_upload_to=SITE_ROOT . DS . "Perf_Masc";

move_uploaded_files($file_tmp, $file_upload_to . DS . $file_name);

如果您很难定义网站的根目录,可以在根目录中创建一个php文件,然后在PHP 5.3或更高版本中创建echo __DIR__,因为早期版本使用echo dirname(__FILE__)。< / p>