2010-02-28 4 views
0

J'utilise le code suivant (avec ASIHTTPRequest) pour tenter de télécharger des fichiers php de mon iPhone vers mon serveur LAN MAMP fonctionnant sur mon Macbook Pro. Mon objectif-c et mon php semblent être en ligne, mais les fichiers ne sont pas téléchargés.Téléchargement de fichiers ASIHTTPRequest et PHP

CODE Objective-C

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *path = [paths objectAtIndex:0]; 
[path stringByAppendingPathComponent:[pieces objectAtIndex:indexPath.row]]; 

NSURL *url = [NSURL URLWithString:@"http://192.168.1.102:8888/upload.php"]; 


ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease]; 
[request setFile:path forKey:@"file"]; 

PHP CODE

<?php 
$target = "uploads/"; 
$target = $target . basename($_FILES['file']['name']) ; 
$ok=1; 
(move_uploaded_file($_FILES['file']['tmp_name'], $target)); 
?> 

Qu'est-ce qui ne va pas ici?

Merci,

James

+0

Désolé , Je ne télécharge pas de fichiers PHP, je télécharge le fichier CSV es, pour ce que ça vaut. Je suis, cependant, en utilisant PHP sur le côté serveur. – James

Répondre

0

code semble bien. Êtes-vous sûr que la configuration PHP de votre serveur accepte les téléchargements, et que les fichiers CSV sont dans la limite de la taille?

1

Est-ce que le processus Apache httpd a le privilège d'écrire dans le répertoire uploads/? Essayez de le définir à /tmp/ et voir si cela fonctionne?

J'ai créé une solution de sauvegarde pour AppSales-Mobile en utilisant un petit script PHP. A écrit à ce sujet here. Le script PHP que j'ai créé ressemble à this. Le code postal réel peut être affiché here dans la méthode - (void) startUpload.

0

Je sais que cette réponse est probablement trop tard pour vous aider spécifiquement, mais juste au cas où d'autres personnes ont le même problème et voir ce poste, j'ai trouvé la solution. J'avais exactement ce problème et aucun des exemples que j'ai pu trouver ne semblait inclure la solution. Mais c'est assez simple, vous devez "commencer" le téléchargement, tout comme vous le faites avec les téléchargements.

En bref, à la fin de votre code Objective-C, vous devez ajouter la ligne:

[request startSynchronous]; 
1

Xcode

[request setFile:path forKey:@"myfile"]; 

php

$uploaddir = ''; 
$uploadfile = $uploaddir.basename($_FILES['myfile']['name']); 


move_uploaded_file($_FILES['myfile']['tmp_name'], $uploadfile);