【问题标题】:PHP: image upload on localhost(apache)PHP:本地主机上的图像上传(apache)
【发布时间】:2015-01-21 22:56:15
【问题描述】:

我为我的上传系统创建了一个类(文件:Uploader.class.php):

    <?php
class Uploader{
    private $filename;
    private $fileData;
    private $destination;

    public function __construct($key){
        $this->filename = $_FILES[$key]['name'];
        $this->fileData = $_FILES[$key]['tmp_name'];
        }
    public function saveIn($folder){
        $this->destination = $folder;
        }
    public function save(){
        //μεταβλητη για να τσεκαρω αν ο φακελος που θα γινει η αποθηκευση ειναι μπορει να γραφτει
        $folderIsWriteAble = is_writable($this->destination);
        if($folderIsWriteAble){
            $name = "this->destination/$this->filename";
            $succes = move_uploaded_file($this->fileData,$name);
            }else{
                trigger_error("cannot write to $this->destination");
                $succes = false;
                }
    return $succes;
    }
    }
?>

现在我正在制作上传算法(文件:upload.php):

<?php

$newImageSubmitted = isset($_POST['new-image']);
if($newImageSubmitted){

    $output = upload();
    }else{

        $output = include_once "views/upload-form.php";
        }
return $output;

function upload(){

    include_once "classes/Uploader.class.php";


    $uploader = new Uploader("image-data");
    $uploader->saveIn("/views/img");
    $fileUploaded = $uploader->save();
    if($fileUploaded){
        $out = "new file uploaded";
        }else{
            $out = "something went wrong";
            }
     return $out;
    }
?>

和表格(文件名:upload-form.php):

    <?php

return"
<h1>Upload new jpg images</h1>
<form method='post' action='phppage.php?page=upload' enctype='multipart/form-data' >
<label>Find a jpg image to upload</label>
<input type='file' name='image-data' accept='image/jpeg' />
<input type='submit' value='upload' name='new-image' />
</form> ";

?>

我想将图像存储在路径中的文件中:views/img 表单和算法保存在视图目录中,因此当我单击上传时,我会输出:注意:无法在第 22 行的 /var/www/html/project3/classes/Uploader.class.php 中写入 /views/img 和:项目目录中出现问题(女巫来自if语句)我有777权限有人可以解释我为什么不能上传图片吗?谢谢

【问题讨论】:

  • 文件 /views/img 是根路径。那是行不通的。

标签: php file-upload


【解决方案1】:

$uploader-&gt;saveIn("/views/img");

应该是

$uploader-&gt;saveIn("views/img");

这是假设您实际上并没有尝试将图像存储在 /views/img

然后改变 $name = "this-&gt;destination/$this-&gt;filename";

$name = "$this-&gt;destination/$this-&gt;filename";

缺少$

【讨论】:

  • @Tomi 更改,但现在我将其作为输出:警告:move_uploaded_file(this->destination/parrots.jpg):无法打开流:/var/www/html 中没有这样的文件或目录/project3/classes/Uploader.class.php 在第 20 行,我认为它与权限有关,但我在 777 中拥有整个目录警告:move_uploaded_file(): Unable to move '/tmp/phpUaxWv1' to 'this->destination/parrots .jpg' 在 /var/www/html/project3/classes/Uploader.class.php 第 20 行
猜你喜欢
  • 2011-12-28
  • 2015-08-06
  • 2011-05-13
  • 2014-12-08
  • 1970-01-01
  • 2016-01-10
  • 2019-07-13
  • 2020-03-29
  • 1970-01-01
相关资源
最近更新 更多