首页 > 解决方案 > 将图像文件添加到我的服务器时出现问题

问题描述

基本上,我试图将图像文件放入服务器中的文件夹中,并在 MYSQL BD 中添加目录。它成功地将文件放入文件夹并将路径链接添加到表中的行。现在,问题是:当我尝试下载文件并显示它时,它下载但没有显示,所以我检查了 FTP 中的文件,结果文件大小为 0.1kb。我做错了什么,我该如何解决?

我已经对这个问题进行了一些研究,我可能很疯狂,但我认为我是唯一一个遇到这个问题的人,因为我无法在任何地方获得帮助。

这是我的代码;

$ImageData = $_POST['image_data'];
$ImageName = date("D M d, G:i");
$ImagePath = "albums/$ImageName.jpg";
$UploadPath =  __DIR__."/../".$ImagePath;

$img = $ImagePath; //to be inserted into DB row

//mysql ("INSERT INTO table...") query here

if($InsertSQL->rowCount()){
    file_put_contents($UploadPath,base64_decode($ImageData));
    // file_put_contents($UploadPath,$ImageData);
    echo "Your Image Has Been Uploaded.";
}

N/B:我使用 base64_decode 因为我是从 android 编码的。

我希望文件以实际大小保存到服务器目录。

标签: php

解决方案


文件存储在$_FILESnot $_POST.

假设您的表单中的字段被调用image_data

$ImageTmpPath = file_get_contents($_FILES['image_data']['tmp_name']);
$ImageName = date("D M d, G:i");
$ImagePath = "albums/$ImageName.jpg";
$UploadPath =  __DIR__."/../".$ImagePath;

$img = $ImagePath; //to be inserted into DB row

//mysql ("INSERT INTO table...") query here

if($InsertSQL->rowCount()){
    file_put_contents($UploadPath,base64_decode($ImageTmpPath));
    echo "Your Image Has Been Uploaded.";
}

推荐阅读