我无法在查看时显示/显示图片,尽管这些文件已存储在数据库中(表格'菜单')http://i.imgur.com/wo1w90H.png。此外,当我一次上传图像时,它们的文件名会自动更改。我不知道这是怎么发生以及为什么会发生这种情况。我使用数组上传多个图像。
if (isset($_POST["Submit"])) {
--some code here--
if (isset($_POST["id_list"])) {
// if id list available
foreach($_POST["id_list"] AS $id) {
--some code here--
/* Handle file upload */
if ($_FILES['upload']['error'][$id] == 'UPLOAD_ERR_OK') {
$path = "images/newmenu/";
$path_parts = pathinfo($_FILES["upload"]["name"][$id]);
$extension = $path_parts['extension'];
$picture = md5(uniqid()) . "." . $extension;
if (move_uploaded_file($_FILES['upload']['tmp_name'][$id], $path . "/" . $picture)) {
$update = " UPDATE menu
SET MenuPicture='$picture'
WHERE MenuID=$id";
$mysqli->query($update) or die(mysqli_error($mysqli));
}
}
}
}
}
}
以下是表单,是的,它包括enctype="multipart/form-data"
<input type="file" multiple name="upload[' . $id . ']" value="' . $record["MenuPicture"] . '">
答案 0 :(得分:0)
答案 1 :(得分:0)
当我一次上传图片时,他们的文件名会自动更改
原因是:
$picture = md5(uniqid()) . "." . $extension;
// And later
move_uploaded_file($_FILES['upload']['tmp_name'][$id], $path . "/" . $picture)
基本上,您将上传的文件移动到图像文件的新文件名,该文件使用uniqid()
生成并使用md5()
进行哈希处理,最后附加文件扩展名。
我无法在观看时显示/显示
你是如何尝试显示图片的?是来自网络浏览器,还是直接进入目录并从那里打开?你得到了什么错误,如果有的话?
实际上,您是否曾尝试进入该目录并查看该文件是否在images/newmenu/
目录中创建?
此外,对于目标上载目录,您可能希望将其附加$_SERVER['DOCUMENT_ROOT']
,以便目标目录不依赖于脚本所在的位置,但它始终基于根目录。
顺便说一下,您可能已经知道,但uploading multiple files
上的PHP手册页中有一个条目