2013-04-08 5 views
1

Après avoir téléchargé un fichier via ftp_put en php sur un serveur, le fichier est téléchargé mais le fichier est corrompu sur le serveur.fichiers est corrompu après le téléchargement via ftp_put dans php

Le code suivant a été utilisé pour télécharger des fichiers. J'ai essayé jpeg, xls, etc ... mais je ne peux pas ouvrir ces fichiers après le téléchargement.

+0

Que voulez-vous dire par «impossible d'ouvrir après le téléchargement»? Essayez-vous de le faire manuellement avec quelque chose comme FileZilla ou quoi? Qu'est-ce qui se passe à la place du fichier affiché? –

+0

je tente de le télécharger ou directement le voir via filezilla ... il montre le fichier corrompu – Nausif

Répondre

0

Je ne sais pas ce qui peut causer ce problème, mais supposons que vous devez essayer fichier de téléchargement après move_uploaded_file:

$filename = $_FILES["file"]["name"];  
$local_file = "some/tmp/storage/path/$filename"; 
if(move_uploaded_file($_FILES["file"]["tmp_name"], $local_file)) { 
    $ftp_path = 'path/newfolder'; 
    $usr = 'userid'; 
    $pwd = 'password'; 
    $host = 'server_ip'; 
    $conn_id = ftp_connect($host, 21) or die("Cannot connect to host"); 
    ftp_login($conn_id, $usr, $pwd) or die("Cannot login"); 
    $upload = ftp_put($conn_id, $ftp_path . '/' . $filename, $local_file, FTP_BINARY); 
    print (!$upload) ? 'Cannot upload' : 'Upload complete'; 
    ulink($local_file); //remove temporary local file 
} else { 
    echo 'File upload error'; 
} 

En outre, assurez-vous que le fichier est vraiment uploadés en vérifiant $_FILES["file"]["error"]. Il devrait être égal à UPLOAD_ERR_OK (Autre erreur codes)

+0

j'ai essayé le code ci-dessus, mais il dit que "move_uploaded_file (certains/tmp/stockage/chemin/Koala.jpg): n'a pas réussi à ouvrir le flux: Aucun fichier ou répertoire dans "un chemin" ". et aussi quand j'ai utilisé mon code original en utilisant ftp_put la taille du fichier est réduite ... comme autour de 800kb le fichier se réduit à 4kb .. – Nausif

+0

Vous devez créer des répertoires où le fichier sera placé avec move_uploaded_file. Donc, vous devez avoir le dossier 'some' dans le même répertoire où votre script est,' tmp' à l'intérieur, 'storage' dans' tmp' et 'path' dans' tmp' –

Questions connexes