空图像保存在服务器上

时间:2013-05-05 19:21:46

标签: php wampserver

我需要你的帮助...我想在服务器上复制/上传图像并在数据库中保存目录...问题是图像是空的=( 我正在使用:

  • WampServer
  • Apache版本:2.2.22
  • PHP版本:5.3.13
  • MySQL版本:5.5.24

问题是它正在创建文件但是为空....它可能是WampServer故障吗?

CODE:

<input type="hidden" name="MAX_FILE_SIZE" value="30000">
<input name="image" id="image" multiple="true" type="file" />
<input name="name" id="name" type="text" maxlength="50" value="" placeholder="Enter Image Name" class="text-field"/>


if(isset($_POST['name']) && isset($_POST['image']))
    {
        $name = $_POST['name'];
        $img = $_POST['image'];

        $file_url = $img;
        $fp = fopen($file_url, 'rb');
        $content = fread($fp, filesize($file_url));
        $fp = fopen('../Images/UploadedImages/'.$img, 'wb');
        $image='../Images/UploadedImages/'.$img;

        $result=mysql_query("insert into Images(Name,Directory,Register_Day) 
        values ('$name','$image',now())");

        if (!$result) {
            die("Failed to load");}
        else{
            fputs($fp, $content);
            fclose($fp);
            }

2 个答案:

答案 0 :(得分:1)

卸载图片并不是那样的,你必须这样做:

$img = $_FILES['image']['tmp_name'];

另请注意,您不希望将图像保存到数据库中,您(可能)希望将图像保存到服务器,但只将文件位置保存到数据库中。

答案 1 :(得分:0)

您无法使用fopen上传图片。试试下面的代码。 您将在$_FILES数组中获取图片详细信息,而不是$_POST

$tmp_name = $_FILES['image']['tmp_name'];
$name = $_FILES['image']["name"];
$uploads_dir = '../Images/UploadedImages';
move_uploaded_file($tmp_name, "$uploads_dir/$name");

在上面的代码中,$uploads_dir/$name将是您可以存储在db中的图像路径。
并确保您的<form>代码设置了enctype="multipart/form-data"属性。