【问题标题】:Cannot upload image to FTP via PHP无法通过 PHP 将图像上传到 FTP
【发布时间】:2014-11-15 17:29:10
【问题描述】:

我目前在尝试让我的 php 上传表单正常工作时遇到一些问题。我收到此错误...抱歉,上传您的文件时出错。

如果 ftp 连接工作正常,我只是不确定什么会阻止上传。

这是php...

$target_dir = "photos/";
$target_file = $target_dir . basename($_FILES["photo"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["photo"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
if ($_FILES["photo"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
} else {
    if (move_uploaded_file($_FILES["photo"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["photo"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
$res=mysql_query("INSERT INTO Photos (image_name, thumb, photo, photo_alt) VALUES 
('$_POST[image_name]', '$_POST[thumb]', '$_POST[photo]', '$_POST[photo_alt]')");

    if (array_key_exists ('check_submit', $_POST )) 

    if (!$res) {
        die('Invalid query: ' . mysql_error());
    }

    ?>

和 html....

    <input type ="hidden" value="1" name="check_submit" enctype="multipart/form-data"/>

     Please Enter Name: <input type ="text" name="image_name" /> <br />

     Tags: <input type ="text" name="photo_alt" /> <br />

     thumb  <input type="file" name="thumb" /><br/>

     image  <input type="file" name="photo" /><br/>

    <input type ="submit" name"Submit" /><br />

</form>

感谢阅读。

【问题讨论】:

  • 可能是权限问题;您的脚本是否对 /photos/ 有写入权限?

标签: php html file upload


【解决方案1】:

enctype 属性应该在表单标签本身中

<form action="photos-upload.php" name="Myform" method="post" enctype="multipart/form-data">

【讨论】:

  • 如果是这个问题,它会输出“抱歉,您的文件没有上传。”
  • @Ja͢ck 但是,如果没有为表单标签中的enctype 属性提供正确的值,则无法进行上传。
  • 我的意思是他应该先解决这个问题,然后再寻找其他原因。
  • 猜你当时没明白我的意思;我的意思是,从所提到的错误来看,这不可能是问题,不管你说的是正确的。
  • 非常感谢,这确实有效,文件现在进入 ftp 文件夹。我现在唯一的问题是文件名不再被插入到数据库中,有什么想法吗?没有错误,我知道 sql 查询有效,因为如果我删除图像上传的东西,名称会进入数据库,上面编辑的新代码。谢谢
猜你喜欢
  • 1970-01-01
  • 2014-12-07
  • 2017-10-16
  • 2015-10-16
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
  • 1970-01-01
相关资源
最近更新 更多