【问题标题】:Can't upload image to website with PHP [duplicate]无法使用 PHP 将图像上传到网站 [重复]
【发布时间】:2016-04-14 09:14:24
【问题描述】:

大约一周前我问了一个类似的问题,但由于我没有得到答案,并且代码的状态发生了很大变化,我决定开一个新线程。希望没有问题;)

我正在创建一个人们可以编写 cmets 的网站。这样做时,会要求提供名称和图像,然后将其显示在站点上。但是,我无法将图像正确上传到我的文件夹。这是 HTML 格式的表单(使用 AJAX 显示):

<input name='image' id ='image' type='file' accept='image/jpg' />

这是我用来上传图片的PHP(没有成功...):

if($_FILES['image']['name']) {
        echo 'File has been uploaded by user';
        if(!$_FILES['image']['error']){
            echo 'No errors';
            $target = 'images/profile/users/'.$username.'.jpg';
            move_uploaded_file($_FILES['image']['tmp_name'], $target);
            echo 'Should be uploaded';
        }
        else{
            echo 'Error:  '.$_FILES['image']['error'];
        }
    }

每当我尝试上传文件时,都不会显示第一个回显(屏幕上未显示“用户已上传文件”)。也没有显示其他消息...有什么想法吗?

非常感谢

萨比

编辑:有人问我表单标签是怎么写的。以防万一,代码如下:

<form id='writeComment' name='writeComment' method='POST' action='writeComment.php'>

【问题讨论】:

  • enctype 标签内是否有 enctype 属性?
  • php.net/manual/en/function.error-reporting.php 你会收到很多未定义的通知。
  • 你声明了 Ajax 但没有代码支持这个问题。这里没有足够的代码,包括表单标签等。如果您要让每个人都猜测,请发布您的完整代码或自己修复它。抱歉,这叫严厉的爱
  • 嗨,很抱歉,如果信息不够,我想会的。表单标签没有enctype 属性,它只是:&lt;form id='writeComment' name='writeComment' method='POST' action='writeComment.php'&gt;

标签: php html ajax image-uploading image-upload


【解决方案1】:

你应该改变这一行

$target = 'images/profile/users/'.$username.'.jpg';

到这里:

$target = 'images/profile/users/'.$_FILES['image']['name'];

【讨论】:

  • 为什么?这是目标文件名。
  • 因为文件名里面有 .jpg 或者不同的类型。所以他正在制作这个例子:> images/profile/users/Example.jpg.jpg
  • 你已经冒险进入了一个可能非常深的兔子洞。 OP 提出了类似的问题stackoverflow.com/q/34590212 并没有向我们展示他们的完整代码。祝你好运。
  • @fernando-sanchiz 不,他正在制作username.jpg $username 中的任何内容,它可能没有文件扩展名。
  • 嗨!我想以用户名作为名称保存图像,所以我的图像将是“trikuxabi.jpg”。我只接受 .jpg 格式的文件,所以这应该不是问题。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 2013-07-28
  • 2017-10-10
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
  • 2015-01-19
  • 2013-04-21
  • 1970-01-01
相关资源
最近更新 更多