0

私は画像をアップロードしようとしていますが、同時にファイルを別のディレクトリにコピーして、それをサムネイルサイズの画像に作成したいと考えています。

アイデアは、基本的に動的なフォト アルバムを作成することです。出力は、誰かがアップロードするたびに自動的に更新される画像のループになります。

主な画像は問題なくアップロードでき、出力ループも簡単です。しかし、ファイル、ファイル名、および情報をディレクトリとDBにアップロードして挿入すると同時に、画像をコピーしてサムネリングできるようにしたいと考えています。

ファイルのアップロード後にコピーを実行しようとしましたが、Imagick をテストして 2 番目の img を親指で表示することを計画していました。しかし、私のコピーが機能しないため、まだ親指をテストすることさえできていません。

他のすべてが失敗した場合は、Timthumb を使用する必要がありますが、出力ページでの読み込みがはるかに遅くなると予想されます。Timtumb に問題がある人はいますか? それははるかに簡単です。:)

基本的に私はこれを持っています

if(move_uploaded_file($_FILES['thefile']['tmp_name'], 'uploads/' . $_FILES['thefile']['name'])) {
        $photo_filename = $_FILES['thefile']['name'];
        $query = "INSERT INTO gallery_photos (
                    photo_filename
                ) VALUES (
                    '{$photo_filename}'
                )";
        $result = mysql_query($query, $connection);
        $path = 'http://mydomain.com/directory/uploads/';
        $fpath = $path.$photo_filename;
        $dest = 'http://mydomain.com/directory/thumbs/';
        $fdest = $dest.$photo_filename;
        copy($fpath, $fdest);
        if ($result) {
            redirect_to("new_photo.php?upload=4");
        } else {
            echo "<p>Dude. Something went wrong!</p>";
            echo "<p>" . mysql_error() . "</p>";
        }
    }

これのいくつかのバリエーションを試しました。コピーをSQLの上と下に配置しました。また、$path/$dest変数なしで試しました。最初はフルパスなしで試しました。しかし、どれも機能しませんでした。

ただし、メインの写真はアップロードフォルダーにアップロードされています。コピーされないだけです。DBも更新されていますのでご安心ください。

どんな助けでも大歓迎です。

乾杯

4

3 に答える 3

1

コピープロセスは次のようになるはずです

$path = __DIR__; // Full Path to site NOT URL 
$fpath = $path . "/uploads/" . $photo_filename;
$fdest = $path . "/thumbs/" . $photo_filename;

if (! is_file($fpath))
    trigger_error("File Does not exist");

if (!is_writable(dirname($fdest)))
    trigger_error("Can not Write to Destination");

copy($fpath, $fdest);
于 2012-10-13T19:23:46.313 に答える
1

このcopy()コマンドには、2 つの FILESYSTEM パラメーターが必要です。HTTP URL を送信しています。

実際には、ラッパー経由で URL をサポートしていますが、すべてのラッパーがファイルの上書きをサポートしているわけではなく、HTTP もその 1 つです。一方、ネットワーク トラフィックを使用してローカル ファイルをコピーすることは決してありません。

于 2012-10-13T18:58:18.057 に答える
0

これは私のために働く:

DIRの代わりにdirname( FILE ) を使用しました

$path = dirname(ファイル);

于 2014-01-22T01:51:54.247 に答える