-2

PHP 警告: imagejpeg(): '.Project/events/timepass.jpg' を書き込み用に開くことができません: 行 35 の ./Project/upload/thumbnal.php にそのようなファイルまたはディレクトリはありません

コード..

<?php
    // open the directory

    $pathToImages="./Project/upload/original/";
    $dir = opendir($pathToImages);

    // loop through it, looking for any/all JPG files:
    while (false !== ($fname = readdir( $dir ))) 
    {
        // parse path for the extension
        $info = pathinfo($pathToImages . $fname);

        // continue only if this is a JPEG image
        if ( strtolower($info['extension']) == 'jpg') 
        {
            // echo "Creating thumbnail for {$fname} <br />";
            // load image and get image size
            $image_size=getimagesize( "{$pathToImages}{$fname}");

            $image_width=$image_size[0];
            $image_height=$image_size[1];

            $new_size=($image_width+$image_height)/($image_width*($image_height/80));
            $new_width=$image_width*$new_size;
            $new_height=$image_height*$new_size;

            $new_image=imagecreatetruecolor($new_width,$new_height);
            $old_image=imagecreatefromjpeg("{$pathToImages}{$fname}"); 

            imagecopyresized($new_image,$old_image,0,0,0,0,$new_width,$new_height,$image_width,$image_height);
            $pathToThumbs="./Project/events/$fname";
            imagejpeg($new_image,$pathToThumbs);
            // save thumbnail into a file
        }
    }
    // close the directory
    closedir( $dir );
?>

localhost からライブ サーバー FTP にデータを転送したときにこのエラーが発生しました。Google で検索したところ、ディレクトリの属性を 777 に変更することを推奨されている人もいました。同じ警告を使用しませんでした。これらのコードは機能します。

4

2 に答える 2

0

新しいイメージをリモート サーバーに転送しますか?

サーバーへのパスはどこにありますか?Like "--IP TO SERVER--/Project/events/"

問題は、書き込んだパスがローカル マシンで見つからないことです。

アップデート

画像を FTP サーバーにアップロードするには、次の例をご覧ください。

<?php

$file = 'somefile.txt';
$ftp_server = "ftp.example.com";

// Connection
$conn_id = ftp_connect($ftp_server);

// Login with user and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// File upload
// $remote_file is the filename on the server 
// $file the filename on your local machine
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "success\n";
} else {
 echo "error\n";
}

// Close connection
ftp_close($conn_id);
?>
于 2013-09-26T11:40:10.730 に答える