2010-06-24 8 views
0

Je télécharger un fichier à soundcloud.com de mon propre serveur avec l'aide d'une API en PHP:un fichier en utilisant Charger PHP

if (isset($mime)) { 
     $tmp_file = $tmp_path . $_FILES['file']['name']; 

     // Store the track temporary. 
     if (move_uploaded_file($_FILES['file']['tmp_name'], $tmp_file)) { 
      $post_data = array(
       'track[title]' => stripslashes($_POST['title']), 
       'track[asset_data]' => realpath($tmp_file), 
       'track[sharing]' => 'private' 
      ); 

      if ($response = $soundcloud->upload_track($post_data, $mime)) { 
       $response = new SimpleXMLElement($response); 
       $response = get_object_vars($response); 
       $message = 'Success! <a href="' . $response['permalink-url'] . '">Your track</a> has been uploaded!'; 

       // Delete the temporary file. 
       unlink(realpath($tmp_file)); 
      } else { 
       $message = 'Something went wrong while talking to SoundCloud, please try again.'; 
      } 
     } else { 
      $message = 'Couldn\'t move file, make sure the temporary path is writable by the server.'; 
     } 
    } else { 
     $message = 'SoundCloud support .mp3, .aiff, .wav, .flac, .aac, and .ogg files. Please select a different file.'; 
    } 
} 

Ceci est mon code. Le chemin temporaire est http://122.166.23.38/dev3/bids4less/funkeymusic/upload et possède les permissions 777 (-rwxrwxrwx).

Mais il montre:

Impossible de déplacer le fichier, assurez-vous que le chemin temporaire est accessible en écriture par le serveur.

Comment résoudre ce problème?

+0

est le répertoire temporaire sous le répertoire racine de votre serveur? – Thariama

+0

aucune racine-> funkeymusic-> télécharger – rajanikant

Répondre

3

Je crois que votre chemin temporaire dans PHP devrait pointer vers un répertoire sur votre serveur, pas un emplacement http.

+0

j'ai donné le chemin obsolète comme http://122.166.23.38/dev3/bids4less/funkeymusic/upload – rajanikant

+1

@rajanikant vous devez utiliser un chemin de système de fichiers, pas une adresse IP. –

+0

maintenant j'utilise le chemin du système de fichiers mais donne la même erreur – rajanikant

0

Quelle est la taille du fichier, et combien de temps faut-il pour télécharger le fichier? Pouvez-vous s'il vous plaît vérifier ces 2 valeurs php.ini:

  • max_execution_time
  • post_max_size

Peut-être que l'installation de téléchargement de PHP est contraint en quelque sorte? PHP est-il dans safe_mode?

+0

la taille du fichier est max 4 mb – rajanikant

1

Cette question est trop vieux, mais comme il a été coupé de toute façon ...

Vous n'avez rien à déplacer, ni à délier. Il suffit de lire le fichier téléchargé de son emplacement temporaire.

Et il est extrêmement pratique de diviser votre tâche complexe en plus petits morceaux, afin de localiser une erreur. Essayez d'envoyer un fichier statique en premier, puis testez le téléchargement du fichier, puis joignez-vous à ces tâches dans l'application finale.

Questions connexes