Oppure

Loading
16/04/11 14:56
RapFan
Ciao a tutti!
Girovagando sul web ho trovato un paio di script che permettono di effettuare l'upload dei file su dropbox, ma solo da locale. Io però vorrei eseguire l'upload da file remoto (inserendo l'URL del file).
Ho provato a modificarli passando come valore l'url dove è hostato il file, ma ovviamente non funziona:rotfl:
                                                    
<body>
<?php
if ($_POST) {
    require 'DropboxUploader.php';


    try {
        // Rename uploaded file to reflect original name
        if ($_FILES['url']['error'] !== UPLOAD_ERR_OK)
            throw new Exception('File was not successfully uploaded from your computer.');

        $tmpDir = uniqid('/tmp/DropboxUploader-');
        if (!mkdir($tmpDir))
            throw new Exception('Cannot create temporary directory!');

        if ($_FILES['url']['name'] === "")
            throw new Exception('File name not supplied by the browser.');

        $tmpFile = $tmpDir.'/'.str_replace("/Ciao a tutti!

Girovagando sul web ho trovato un paio di script che permettono di effettuare l'upload dei file su dropbox, ma solo da locale. Io però vorrei eseguire l'upload da file remoto (inserendo l'URL del file).
Ho provato a modificarli passando come valore l'url dove è hostato il file, ma ovviamente non funziona:rotfl:
                                                    
<body>
<?php
if ($_POST) {
    require 'DropboxUploader.php';


    try {
        // Rename uploaded file to reflect original name
        if ($_FILES['url']['error'] !== UPLOAD_ERR_OK)
            throw new Exception('File was not successfully uploaded from your computer.');

        $tmpDir = uniqid('/tmp/DropboxUploader-');
        if (!mkdir($tmpDir))
            throw new Exception('Cannot create temporary directory!');

        if ($_FILES['url']['name'] === "")
            throw new Exception('File name not supplied by the browser.');

        $tmpFile = $tmpDir.'/'.str_replace("/{parsed_message}", '_', $_FILES['file']['name']);
        if (!move_uploaded_file($_FILES['url']['tmp_name'], $tmpFile))
            throw new Exception('Cannot rename uploaded file!');

        // Enter your Dropbox account credentials here
		$uploader = new DropboxUploader('indirizzoemailDropBox', 'passwordDropbox');
        $uploader->upload($tmpFile, $_POST['dest']);

        echo '<span style="color: green;font-weight:bold;margin-left:393px;">File successfully uploaded to my Dropbox!</span>';
    } catch(Exception $e) {
        echo '<span style="color: red;font-weight:bold;margin-left:393px;">Error: ' . htmlspecialchars($e->getMessage()) . '</span>';
    }

    // Clean up
    if (isset($tmpFile) && file_exists($tmpFile))
        unlink($tmpFile);

    if (isset($tmpDir) && file_exists($tmpDir))
        rmdir($tmpDir);
}
?>

<div class="box" align="center">
		<h1>Dropbox Uploader Demo<br>
		<br>
		&nbsp;</h1>
		<form method="POST" enctype="multipart/form-data">
		<input type="url" size=50 /><br><br>
		<input type="submit" value="Upload the file to my Dropbox!" />
		<input style="display:none" type="text" name="dest" value="shared" />

</div>




</body>
</html>

il dropboxuploader.php che lo script richiede si trova qui jaka.kubje.org/projects/dropbox-uploader/files/…




edit: ho appena scoperto che esistono le librerie cURL per fare quello che voglio io:rotfl:, a questo punto mi domando se aggiungendo questa porzione di codice riesco a passare al resto del programma il vero file da uploadare
$url = $_POST('url');
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
$out = curl_exec($ch);

da quello che ho capito questo sono i passi fondamentali per prendere in lettura un file da url. ora al posto di $out userei $file da dare in pasto al resto del codice (risostituendo di nuovo tutte le variabili $url presenti nella prima parte).", '_', $_FILES['file']['name']); if (!move_uploaded_file($_FILES['url']['tmp_name'], $tmpFile)) throw new Exception('Cannot rename uploaded file!'); // Enter your Dropbox account credentials here $uploader = new DropboxUploader('indirizzoemailDropBox', 'passwordDropbox'); $uploader->upload($tmpFile, $_POST['dest']); echo '<span style="color: green;font-weight:bold;margin-left:393px;">File successfully uploaded to my Dropbox!</span>'; } catch(Exception $e) { echo '<span style="color: red;font-weight:bold;margin-left:393px;">Error: ' . htmlspecialchars($e->getMessage()) . '</span>'; } // Clean up if (isset($tmpFile) && file_exists($tmpFile)) unlink($tmpFile); if (isset($tmpDir) && file_exists($tmpDir)) rmdir($tmpDir); } ?> <div class="box" align="center"> <h1>Dropbox Uploader Demo<br> <br> &nbsp;</h1> <form method="POST" enctype="multipart/form-data"> <input type="url" size=50 /><br><br> <input type="submit" value="Upload the file to my Dropbox!" /> <input style="display:none" type="text" name="dest" value="shared" /> </div> </body> </html>

il dropboxuploader.php che lo script richiede si trova qui jaka.kubje.org/projects/dropbox-uploader/files/…




edit: ho appena scoperto che esistono le librerie cURL per fare quello che voglio io:rotfl:, a questo punto mi domando se aggiungendo questa porzione di codice riesco a passare al resto del programma il vero file da uploadare
$url = $_POST('url');
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
$out = curl_exec($ch);

da quello che ho capito questo sono i passi fondamentali per prendere in lettura un file da url. ora al posto di $out userei $file da dare in pasto al resto del codice (risostituendo di nuovo tutte le variabili $url presenti nella prima parte).
Ultima modifica effettuata da RapFan 19/04/11 8:01
aaa
19/07/11 21:23
danielerew
fammi capire tu vorresti prendere un file avendo un url es. sito.com/… ed effettuare il trasferimento su un altro server o sul computer locale?
aaa