Site icon Noir Solutions

PHP script carica file da form PC o da url su Remoto

Vediamo adesso in questo articolo come caricare un file o un’immagine da un altro sito sul vostro server tramite il linguaggio PHP server side. Vi faremo vedere principalmente due metodi. Ossia come caricare un’immagine da url oppure come caricarlo attraverso un form html

 

Prima di iniziare due appunti. Per scrivere questo articolo presuppongo che voi siate perfettamente a conoscenza del linguaggio PHP e Html. Ossia lo script che vi proporrò sarà parziale se volete avere lo script completo dovrete riunire le varie parti o chiedete pure.

 

Secondo appunto dovrete creare nel vostro server una cartella uploadtest che abbia tutti i permessi. Ossia che la somma dei permessi in lettura , scrittura e aggiornamento sia 777 chmod.

 

Caricare un’immagine o file da url.

Quindi per prima cosa vi occorrerà conoscere l’url di dove si trova l’immagine o file che volete caricare sul vostro server in remoto.

 

Facciamo l’ipotesi che passiamo l’url tramite un form. Ossia carichiamo tramite html in un form l’url dell’immagine che vogliamo caricare un tipico form per questo caso potrebbe essere il seguente

<html>
<head><title>Tutorial Script caricamento file immagine php</title></head>
<body>

Copia l'url e premi enter

<form action="" method="post">
Url: <input type="text" name="url" />
</form>
</body>
</html>

 

 

 

Come potete vedere ho ridotto al minimo il codice che risulta essere facilmente comprensibile.

 

Nel server il codice PHP sarà qualcosa del tipo

 

<?php
//http://noirsolutions.net
//Autore Simi Fabrizio

if($_POST){

$url = $_POST['url'];
$name = basename($url);
list($txt, $consentiti) = explode(".", $name);
$name = $txt.time();
$name = $name.".".$consentiti;

if($consentiti == "jpg" or $consentiti == "png" or $consentiti == "gif" or $consentiti == "doc" or $consentiti == "docx" or $consentiti == "pdf"){

$upload = file_put_contents("uploads/$name",file_get_contents($url));

if($upload) echo "Caricamento avvenuto: <a href='uploads/".$name."' target='_blank'>Controlla caricamento</a>"; else "controlla permessi cartella";
}else{
echo "Per favore controlla  i file consentiti";
}
}
?>

.

Come potete vedere il caricamento è veramente molto semplice. Si controlla se l’url del file immesso è fra i consentiti e dopo si controlla se la cartella ha i permessi per il caricamento altrimenti con un paio di if si rimanda un messaggio di errore.

facciamo un altro esempio in questo caso carichiamo da url ma non da form e l’url lo precarichiamo nel server

error_reporting(2047);

$_FILES['file1']['tmp_name']="http://url_immagine.png";
$percorso = "uploadtest/";

if (is_uploaded_file($_FILES['file1']['tmp_name'])) {
if (move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {
echo 'Nome file: '.$_FILES['file1']['name'].'
';
echo 'MIME Type: '.$_FILES['file1']['type'].'
';
echo 'Dimensione: '.$_FILES['file1']['size'].' byte
';
echo '======================
';
echo 'File caricato correttamente

';
echo 'carica un altro file';
} else {
echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
}
} else {
echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
}


Anche in questo caso mi sembra molto semplice.

 

 

Caricare un’immagine o file da form dal PC

 

 

In questo caso invece creiamo uno script tramite il quale sarà possibile caricare un file da form ma invece che passare un url passiamo direttamente un’immagine che è presente nel vostro PC.

In questo caso lo script sarà

Upload your file < input name="carica_file" type="file" /> < input type="submit" value="Carica" />

 if(!empty($_FILES['carica_file'])) 
{ $path = "uploadtest/"; $path = $path . basename( $_FILES['carica_file']['name']); 
if(move_uploaded_file($_FILES['carica_file']['tmp_name'], $path)) 
{ echo "Il file ". basename( $_FILES['carica_file']['name']). " è stato caricato"; } 
else{ echo "Errore caricamento prova ancora!"; } } ?>

 

PHP variabile globale Files

Solo un appunto globale finale. Abbiamo usato la variabile globale Files introdotta nel PHP con la versione 4.1 questo il suo utilizzo

$_FILES[‘userfile’][‘name’]
contiene Il nome originale del file sul PC dell’utente in questione

$_FILES[‘userfile’][‘type’]
Rappresenta Il mime-type del file, per esempio “image/png” per i file immagini Portable Network Graph. Non sempre fornisce un valore esatto.

$_FILES[‘userfile’][‘size’]
Fornisce la dimensione del file che avete caricato in remoto

$_FILES[‘userfile’][‘tmp_name’]
Nome temportaneo del file su server caricato

$_FILES[‘userfile’][‘error’]
Codice di errore se si è verificato un problema.

 

 

 

Per esempio se volete inserire un controllo sull’immagine potete fare qualcosa del genere

 

$flag=true
if ($_FILES["carica_file"]["size"] > 500000) {
    echo "Errore file dimensione eccede quella consentita";
    $flag = false;
}

E ovviamente dopo fate il controllo sulla variabile flag

Exit mobile version