1

これは、あるサーバーから別のサーバーにいくつかの画像をトランスロードするために使用している基本的なトランスローダーです。これは、URLを入力して[ダウンロード]をクリックすると、サーバー上のディレクトリに保存され、新しいURLが表示される基本的なスクリプトです。

画像にランダムな数字のファイル名を同時に自動的に与えるものを追加する必要があります。今夜は遊んでかなり近づきましたが、運が悪かったです。ツールに機能を追加できますか?月曜日までにプロジェクトでツールを使用する必要があるため、急いでいます。そのため、これを実行するために助けを求めることにしました。前もって感謝します!!!!

<?php

// Check if form has been submitted
if($_POST['submit']){

    ini_set("max_execution_time", 0);   // no time-outs!
    ignore_user_abort(true);            // Continue downloading even after user closes the browser.


    // URLS -- One on each line
    $URL = $_POST['url'];

    // Relative path to Save downloaded images
    // Default is "downloads"
    // Make sure that it is writable (chmoded correctly)
    $folder = $_POST['folder']; 

    // Check if User has provided a local folder
    if (!$folder || !isset($folder)){

        // Generate error if left blank by user.
        die ("Please specify local folder name");
    }

    // Split all URLS into an array
    $urls = split("\n", $URL);

    // Remove Carriage Returns (useful for Windows-based browsers)
    $urls = str_replace("\r", "", $urls);

$mh = curl_multi_init();
foreach ($urls as $i => $url) {
    $path = pathinfo($url);
    $g=$folder . "/" . $path["basename"] ;
        // Check if file already exists on local folder.
    if(file_exists($g)){

        // If exists, delete the file so it always contains the latest update.  
        unlink($g) or die("Unable to delete existing '$g'!");
    }
    // Update the user of what's going on
    echo "$i) <b>Sucess! Your image has been transloaded from:</b> <br><small><small>$url</small></small><p><b>Your new image URL is:</b><br>http://myURL.com/gallery/$g<br />";

    if(!is_file($g)){
        $conn[$i]=curl_init($url);
        $fp[$i]=fopen ($g, "w");
        curl_setopt ($conn[$i], CURLOPT_FILE, $fp[$i]);
        curl_setopt ($conn[$i], CURLOPT_HEADER ,0);
 //       curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,1000);
        curl_multi_add_handle ($mh,$conn[$i]);
    }
}
do {
    $n=curl_multi_exec($mh,$active);
}
while ($active);
foreach ($urls as $i => $url) {
    curl_multi_remove_handle($mh,$conn[$i]);
    curl_close($conn[$i]);
    fclose ($fp[$i]);
}
curl_multi_close($mh);

} //  task closed
?>
<br />
<br />
<fieldset>
        <legend>
            <label for="url">Download Remote Files And Save Locally</label>
        </legend>
        <form method=POST>
            <label for="url">URL: </label><br />
            <textarea rows=15 cols=75 id="url" name="url"><?= $URL ?></textarea><br />
            <label for="folder">Local folder : </label><input type=text id="folder" name="folder" value="downloads"/>
            <input type=submit name="submit" value="Download Files!" />
        </form>
</fieldset>
4

0 に答える 0