图像上传未将图像放入服务器文件夹

时间:2015-09-18 09:16:27

标签: php image file-upload

我将图片上传到服务器文件时遇到问题。 我正在建立一个在线商店,当我添加产品时,可以选择一个图像。 我已经检查了我的php.ini文件以允许上传,以及允许的足够大小的文件。 我已将权限设置为图像应该对“Everyone”进行“完全控制”的文件夹 (只是为了避免那里的任何问题)

我有一台带有多个小驱动器的物理PC。 只有一个驱动器具有我的Web服务器文件。 其他人有Minecraft和TeamSpeak。

个人电脑在我家办公室旁边的一个房间里,在本地网络上。 我可以使用文件浏览器或FTP手动上传图像,但是, 在不久的将来,我不仅会在本地上传和添加产品到商店。

现在,当我打开添加产品页面时,文本字段旁边有一个“上传图片”按钮, 这会打开一个包含上传页面代码的单独窗口。 文本字段用于链接数据库中的图像。

所以我点击“上传图片”按钮,会发生以下情况: 出现小的单独窗口,带有2个按钮,浏览和上传。 我点击浏览,然后选择我的图像。 图像名称现在显示在浏览按钮旁边。 当我点击上传时,它会关闭页面,图像名称会显示在“上传图片”旁边的文本字段中 用于数据库引用的产品添加列表中的按钮。 我点击添加产品,产品,包括图像名称显示在数据库中。

但是图片没有上传到指定的服务器文件夹。

我试过插入整个文件路径...... “d:/网络/店/显卡/产品” 没工作。 (D:/ Web ..是带有网站内容的驱动器和根文件夹)

WEB文件夹结构: Web--> [main_page_images] [shop_root]--> [shop_admin]--> [shop_images]--> [products]--> (where the image should go) index.php add_product.php add_image.php index.php web.config (结构中还有一些其他文件夹,但它们不相关)

add_image.php代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CompuShop Image Chooser</title>
</head><body>   
<?php if ((isset($_POST["send"])) && ($_POST["send"] == "form1")) {
    $file_Name = $_FILES['userfile']['name'];
    move_uploaded_file($_FILES['userfile']['tmp_name'], "../shop_images/products".$file_Name);
?>
<script>
    opener.document.form1.strImage.value="<?php echo $file_Name; ?>";
    self.close();
</script>
<?php
}
else
{?>
<form action="add_image.php" method="post" enctype="multipart/form-data" id="form1" />
<p>
    <input name="userfile" type="file">
</p>
<p>
    <input type="submit" name="button" id="button" value="Upload Image" />
</p>
    <input type="hidden" name="send" value="form1" />
</form>
<?php }?>
</body>
</html>

现在我已经提供了所有可以提供的信息......

我错过了什么吗? 我做错了吗?

请帮忙。

2 个答案:

答案 0 :(得分:1)

尝试将/放在move_uploaded_file函数上,我认为您不需要..

move_uploaded_file($_FILES['userfile']['tmp_name'], "/shop_images/products/".$file_Name);

答案 1 :(得分:0)

我今天回答了我自己的问题,因为我可以。

我并不完全知道如何解决这个问题,但它确实有效。 (如果您知道解决方案,请回复)

我浏览了一些其他帖子,其中一个提到了我的PhP配置本身的设置。 默认情况下,最新的PhP上传设置......

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M

; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20

所以我把它改成了......

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = D:/Web/temp

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2048MB

; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20

我首先更改了&#34; upload_max_filesize&#34;到1024MB 不工作。 然后到2048MB 结果相同。 现在这就是我认为的诀窍...... 然后我指定&#34; upload_tmp_dir&#34;现在正在上传。

我的网页代码仅供参考...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Shop Database Image Chooser</title>
</head><body>   
<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

 if ((isset($_POST["send"])) && ($_POST["send"] == "form1")) {
    $file_Name = $_FILES['userfile']['name'];
    move_uploaded_file($_FILES['userfile']['tmp_name'], "../shop_images/products/".$file_Name);
    ?>
    <script>
        opener.document.form1.strImage.value="<?php echo $file_Name; ?>";
        self.close();
    </script>
<?php
}
else
{?>
<form action="image_adding.php" method="post" enctype="multipart/form-data" id="form1" />
<p>
    <input name="userfile" type="file">
</p>
<p>
    <input type="submit" name="button" id="button" value="Upload Image" />
</p>
    <input type="hidden" name="send" value="form1" />
</form>
<?php }?>
</body>
</html>

对于来自phphelp.com的人来说,感谢所有的人。