0

PHP:

if((isset($_POST['title']))&&(isset($_POST['body']))){ 

$maxSize = 4000; 
$acceptType = array( 
     'png' => 'image/png',
     'jpe' => 'image/jpeg',
     'jpeg' => 'image/jpeg',
     'jpg' => 'image/jpeg',
     'gif' => 'image/gif',
);

$title = mysql_real_escape_string($_POST['title']); 
$body = mysql_real_escape_string($_POST['body']); 


if((isset($_FILES['image']))&&(is_uploaded_file($_FILES["image"]["tmp_name"]))){ 

   $image_dest = "/it/images/".rand(1,1000)."-".basename($_FILES['image']['name']);

   if($_FILES['image']['size'] <= $maxSize*1024) {

       if(in_array($_FILES['image']['type'], $acceptType)) {

           if(move_uploaded_file($_FILES['image']['tmp_name'], $image_dest)) // line 44
                $message="Ok";
        }
   }



}
}

HTML:

<form action="createblog.php" method="post" enctype="multipart/form-data">
    <p>
        <label>Title:</label>
        <input type="text" size="100" name="title">
    </p>
    <p>
        <label>Image:</label>
        <input type="file" name="image">
    </p>
    <p>
        <label>Image Caption:</label>
        <input type="text" size="100" name="imagecaption">
    </p>
    <p>
        <label for="editor1">Body:</label>
        <textarea class="ckeditor" cols="50" id="editor1" name="body" rows="10"></textarea>
    </p>
    <p>
        <input type="submit" value="Submit" />
    </p>
</form>

なぜこのエラーが発生するのですか?

Warning: move_uploaded_file(/it/images/865-Star_Trek_Logo.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/content/08/1936/html/it/createblog.php on line 44

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php0hvJSh' to '/it/images/865-Star_Trek_Logo.jpg' in /home/content/08/1936/html/it/createblog.php on line 44
4

2 に答える 2

1

フルパスを指定する必要があります:

$image_dest = "/home/content/08/1936/html/it/images/".rand(1,1000)."-".basename($_FILES['image']['name']);
于 2012-07-13T22:42:05.587 に答える
1

$image_dest の先頭は次のようになります。

/home/content/08/1936/html/it/images/

絶対パスが必要ですが、相対パスを使用しようとしています。

$image_dest = "/home/content/08/1936/html/it/images/".rand(1,1000)."-".basename($_FILES['image']['name']);

また、ファイルをアップロードできるようにするには、imagesディレクトリをchmod する必要があることに注意してください。777

于 2012-07-13T22:42:28.793 に答える