将图像上传到临时图像文件夹

时间:2017-07-08 10:47:07

标签: php

我有一个托管网站,我想将我的图像上传到图像目录,并将图像链接到mysql数据库。

我做了什么:

创建表单:

<form method=POST align=center enctype="multipart/form-data">
<input type=file name=image>

Php代码:

$uploaddir = 'images/';
     // echo $uploaddir;
        $target = "$uploaddir".basename($_FILES['image']['name']);
              echo $target;

        $image = $_FILES['image']['name'];
    $sql="insert into News2(image_News2) 
    values($image)";
    $res=mysqli_query($con,$sql);
    copy($_FILES['tmp_name']['name'],$target,true);

此代码实际上只是将图像插入数据库而不是将图像复制到images文件夹中。

我搜索并找到了什么:

您不应将http:// URL指定为$ uploaddir,而应指定相对于运行php脚本的路径的路径。

所以我真正想做的是:

1-将图像复制到网站上的图像文件夹目录中。 2-将复制的图像链接到数据库。

3 个答案:

答案 0 :(得分:1)

你错过了名字ïmage“ 不是:

copy($_FILES['tmp_name']['name'],$target,true);

但:

move_uploaded_file($_FILES['image']['tmp_name'], $target);

也许你应该首先尝试移动,然后将其插入数据库,如果该操作失败(或filesize = 0)等。

如果文件操作和数据库操作失败,请检查它们:rollback

额外:

数据库表中只有1列? 使用上传文件的名称是明智的吗?重复可能发生。 我会在检查文件后将原始名称插入数据库。获取该记录的自动增量ID。将文件重命名为./1234.jpg

通过数据库,您可以稍后使用原始名称。但是这个编号对于一个简单的应用来说可能太过变化了

答案 1 :(得分:0)

根据您提供的数据,您必须关闭Form标签,然后使用form action =“”属性来指定url。如果您的操作系统是linux,那么检查文件夹权限是否设置,如果字段名称设置为唯一,还检查您的数据库表? 然后在给定的url文件中写下代码

答案 2 :(得分:0)

PHP代码:         

     if (isset($_FILES['image']['name']) && $_FILES['image']['error'] 
     == 0) {
     $uploads_dir = '/uploads';
     $temp_file = $_FILES['image']['tmp_name'];
     $name = basename($_FILES["image"]["name"]);
     if(move_uploaded_file($temp_file, "$uploads_dir/$name")){
     //Fire Insert Query For Insert image name in your database
     }
     else
     {  
      echo "Error !! , Your image not uploaded.";
     }
    }
   ?>