【问题标题】:Image upload png/jpg图片上传 png/jpg
【发布时间】:2015-05-30 18:46:41
【问题描述】:

我在将图片从 SSL 安全网页上传到服务器时遇到问题,图片可以正确上传,但未进入所选路径。

<?php
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        $errors = Array();
        if(isset($_POST['title'])) {
            if(trim($_POST['title']) != '') {
                if(strlen(trim($_POST['title'])) < 2) {
                    $errors[] = 'De titel is te kort (2).';
                }
            }else{
                $errors[] = 'De titel is leeg gelaten.';
            }
        }else{
            $errors[] = 'Er is geen titel meegestuurd.';
        }

        if(isset($_POST['category'])) {
            if(trim($_POST['category']) != '') {
                if(!in_array(trim($_POST['category']), array_flip($config['general']['cat']))) {
                    $errors[] = 'Deze catagorie bestaat niet!';
                }
            }else{
                $errors[] = 'Catagorie is leeg gelaten.';
            }
        }else{
            $errors[] = 'Er is geen catagorie meegestuurd.';
        }   

        if(isset($_POST['graad'])) {
            if(trim($_POST['graad']) != '') {
                if(!in_array(trim($_POST['graad']), array_flip($config['general']['graad']))) {
                    $errors[] = 'Deze moeilijksheidgraad bestaat niet!';
                }
            }else{
                $errors[] = 'Moeilijkheidsgraad is leeg gelaten.';
            }
        }else{
            $errors[] = 'Er is geen moeilijksheidgraad meegestuurd.';
        }   

        if(isset($_POST['description'])) {
            if(trim($_POST['description']) != '') {
                if(strlen(trim($_POST['description'])) < 5) {
                    $errors[] = 'De bereidingstekst is te kort (5).';
                }
            }else{
                $errors[] = 'De bereidingstekst is leeg gelaten.';
            }
        }else{
            $errors[] = 'Er is geen bereidingstekst meegestuurd.';
        }   

        if(isset($_FILES['photo'])) {
            if($_FILES['photo']['type'] != '') {
                if($_FILES['photo']['type'] != 'image/jpeg') {
                    $errors[] = 'Uw foto is geen JPG afbeelding.';
                }
            }
        }

        if(isset($_POST['time'])) {
            if(trim($_POST['time']) != '') {
                if(strlen(trim($_POST['time'])) < 1) {
                    $errors[] = 'De bereidingstijd is te kort (5).';
                }
            }else{
                $errors[] = 'De bereidingstijd is leeg gelaten.';
            }
        }else{
            $errors[] = 'Er is geen bereidingstijd meegestuurd.';
        }                                   

        if(count($errors) == 0) {
            $title = trim($_POST['title']);
            $category = trim($_POST['category']);
            $graad = trim($_POST['graad']);
            $description = trim($_POST['description']);
            $time = trim($_POST['time']);
            $update = $dbh->prepare('UPDATE recettes SET title = :title, category = :category, graad = :graad, description = :description, time = :time WHERE id = :id');
            $update->bindParam(':title', $title, PDO::PARAM_STR);
            $update->bindParam(':category', $category, PDO::PARAM_STR);
            $update->bindParam(':graad', $graad, PDO::PARAM_STR);
            $update->bindParam(':description', $description, PDO::PARAM_STR);
            $update->bindParam(':time', $time, PDO::PARAM_STR);
            $update->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
            $update->execute();
            if(isset($_FILES['photo']) && $_FILES['photo']['type'] != '') {
                if(file_exists('/home/joshua3/domains/recettes.nl/public_html/uploads/photo-' . $uid . '.jpg')) {
                    unlink('/home/joshua3/domains/recettes.nl/public_html/uploads/photo-' . $uid . '.jpg');
                }
                move_uploaded_file($_FILES['photo']['tmp_name'], '/home/joshua3/domains/recettes.nl/public_html/uploads/photo-' . $uid . '.jpg');
            }
            echo '<font color="green">De instellingen zijn succesvol opgeslagen</font><meta http-equiv="refresh" content="1;url=https://www.recettes.nl/edit/' .$_GET['id']. '">';
            $edited = true;
        }else{
            echo 'Er ging wat mis. De volgende dingen gingen fout:<ul><li>' . join('</li><li>', $errors) . '</li></ul>De instellingen zijn niet opgeslagen, probeer het opnieuw.';
        }
    }
    if(!isset($edited)) {
?>

问题解决了一次,但是修改服务器后问题又出现了。

<div class="grid desk-12 both">
<div class="form-label">Afbeelding<font color="red">**</font></div>
<div class="form-description">Wij ondersteunen alle afbeelding formaten. Wij accepteren alleen .jpg formaat.</div>
<input type="file" name="photo" multiple="multiple" class="multi with-preview">
</div>

下面是表格的头部>

<form action="" method="post" enctype="multipart/form-data">

地图“上传”已经是 chmod 777。

你能帮我解决这个问题吗?

【问题讨论】:

  • 我不希望对 move_uploaded_file 使用 realpath,而是使用树寻址,如果您的文件是 upload.php,dest 是:/myfolder/file-$uid.jpg
  • 把你的表单代码写成这样:- &lt;form action="" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" name="photo" multiple="multiple" class="multi with-preview"&gt;&lt;/form&gt; &lt;/div&gt;
  • @anantkumarsingh 它已经和你的一样了,但是我把代码作为一个单一的来找出问题所在。
  • 请在以后花点时间格式化您的代码,这样它就可以在没有太多滚动的情况下模糊地阅读。
  • 您确实应该在尝试使用上传的文件之前检查$_FILES['photo']['error']。该错误通常可以告诉您很多有关您的问题的信息

标签: php sql pdo jpeg image-uploading


【解决方案1】:
<form action="" method="post" enctype="multipart/form-data">

在您输入后开始,将您的输入放在表单标签内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-30
    • 2017-11-13
    • 2017-11-02
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    相关资源
    最近更新 更多