2017-07-17 65 views
1

你好,我有一个问题要问。问题是当我试图上传图像到某些文件夹使用PHP,图像不move.the图像信息插入数据库,但只有图像不移动到目标文件夹。该文件夹是空的,但没有显示错误。我在Php.ini中的file_upload已打开,但图像仍然不动。 下面是我的代码:PHP:上传的文件不能移动到文件夹(CLOSED)

<form action='try1.php' method='post' enctype='multipart/form-data'> 
<table border='1'><tr> 
    <td><input type='file' name='file_img' /></td><td> 
    <input type='submit' name='btn_upload' value='upload'></td></tr> 
</table> 
</form> 

<?php 

    require 'conf.php'; 

    $link = mysqli_connect($h,$u,$p,$db); 
    if(isset($_POST['btn_upload'])) 
    { 
     $filetmp = $_FILES["file_img"]["tmp_name"]; 
     $filename = $_FILES["file_img"]["name"]; 
     $filetype = $_FILES["file_img"]["type"]; 
     $filepath = "upload/".$filename; 

     move_uploaded_file($filetmp,$filepath); 


    $query = "insert into try (image,type,path) values ('$filename','$filetype','$filepath')"; 
    $result = mysqli_query($link,$query); 


    } 
?> 

我希望有人能帮助我解决这个问题,谢谢。

(已解决)我已经解决了这个问题。它不是代码,但我的电脑有问题,谢谢你的帮助。

+1

**警告**:使用'mysqli'时,您应该使用[参数化查询](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和['bind_param' ](http://php.net/manual/en/mysqli-stmt.bind-param.php)将用户数据添加到您的查询。 **不要**使用字符串插值或连接来完成此操作,因为您创建了严重的[SQL注入漏洞](http://bobby-tables.com/)。 **不要**将'$ _POST','$ _GET'或**任何**用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 – tadman

+1

你在哪里找错误? apache日志文件?我怀疑许可问题。 'chown apache:apache/path/to/destination -R' –

+1

move_uploaded_file在成功/失败时返回true/false。将它保存到一个临时变量并输出/记录它。这很可能是一个权限问题。 – mkaatman

回答

1

首先删除您的上传文件夹。之后 请在代码中保留以下代码。

$filepath = "upload/"; 
    $filePathWithFileName = "upload/".$filename; 

    if (!file_exists($filepath)) { 
     mkdir($filepath, 0777); 
    } 

    move_uploaded_file($filetmp,$filePathWithFileName); 
1

$ filepath =“./upload/".$filename;