【问题标题】:move_uploaded_file(); not workingmove_uploaded_file();不工作
【发布时间】:2017-12-31 14:40:25
【问题描述】:

我刚刚写了一个脚本来上传图片,我检查了很长时间,但我找不到错误在哪里。整个代码做了它应该做的,但是 move_uploaded_file();功能没有。这是我的代码:

HTML:

<form method="post" id="img-form" enctype="multipart/form-data">
Subir imagen: <input type="file" name="file">
</form>
<div id="respuesta"></div>

JS:

$(function(){
$("input[name='file']").on("change", function(){
var formData = new FormData($("#img-form")[0]);
$.ajax({
    url: "ajax/uploadimage.php",
    type: "POST",
    data: formData,
    contentType: false,
    processData: false,
    success: function(data)
       {
         $("#respuesta").html(data);
       }
    });
 });
});

PHP:

<?php
require '../init.php';

if (isset($_FILES["file"]))
{
    $file = $_FILES["file"];
    $nombre = $file["name"];
    $type = $file["type"];
    $ruta_provisional = $file["tmp_name"];
    $size = $file["size"];
    $gethandw = getimagesize($ruta_provisional);
    $width = $gethandw[0];
    $height = $gethandw[1];
    $path = "img/users/";

    if ($type != 'image/jpg' && $type != 'image/jpeg' && $type != 'image/png' && $type != 'image/gif')
    {
      echo "Error, el archivo no es una imagen"; 
    }
    else if ($size > 1024*1024)
    {
      echo "Error, el tamaño máximo permitido es un 1MB";
    }
    else if ($width > 400 || $height > 400)
    {
        echo "Error la anchura y la altura maxima permitida es 500px";
    }
    else if($width < 60 || $height < 60)
    {
        echo "Error la anchura y la altura mínima permitida es 60px";
    }
    else
    {
        $src = $path.$nombre;
        move_uploaded_file($ruta_provisional, $src);
        echo "<img src='$src'>";
    }
}

答案(数据)输出一切正确,但图像没有上传到任何地方,我正在使用 xampp 进行测试

【问题讨论】:

  • 我看不到任何错误。确定没有上传?检查 img/users/ 目录
  • 您的网络服务器是否对img/users 目录具有写入权限?
  • 你可以试试这个:if (isset($_FILES["file"]["name"]))
  • 报错返回什么,上传和开发者控制台上的错误号?
  • 我如何知道我的网络服务器是否可以访问该路径@MartinHeralecký

标签: php jquery ajax image


【解决方案1】:

您的 PHP 代码似乎没问题。我发现您的 FormData 实现存在一些问题。请尝试以下代码

JS

$(function(){
    $("input[name='file']").on("change", function() {
        var formData = new FormData();
        formData.append('file', $(this)[0].files[0]); 
        $.ajax({
            url: "ajax/uploadimage.php",
            type: "POST",
            data: formData,
            contentType: false,
            processData: false,
            success: function(data) {
                $("#respuesta").html(data);
            }
        });
     });
});

如果您仍然面临困难,请告诉我。希望这会有所帮助。谢谢

【讨论】:

  • 还是一样
猜你喜欢
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 1970-01-01
  • 2013-02-19
  • 1970-01-01
  • 2011-05-13
相关资源
最近更新 更多