J'essaye de télécharger un fichier sur un serveur (à partir d'une application mac OS personnalisée) en utilisant ASIFormDataRequest. Dans mon code cacao/obj-c, je:ASIFormDataRequest + Problèmes PHP
- (IBAction)uploadFile:(id)sender
{
[networkQueue reset];
[networkQueue setShowAccurateProgress:YES];
[networkQueue setUploadProgressDelegate:progressIndicator];
[networkQueue setRequestDidFailSelector:@selector(postFailed:)];
[networkQueue setRequestDidFinishSelector:@selector(postFinished:)];
[networkQueue setDelegate:self];
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:@"http://domain.com/to/upload.php"]] autorelease];
[request setFile:@"/path/to/file.jpg" forKey:@"file"];
[networkQueue addOperation:request];
[networkQueue go];
}
- (void)postFinished:(ASIHTTPRequest *)request
{
NSLog(@"Post Success");
}
- (void)postFailed:(ASIHTTPRequest *)request
{
NSLog(@"Post Failed");
}
Le code PHP sur le serveur ressemble à ceci:
$target_path = "files/";
$target_path = $target_path . basename($_FILES['uploadedfile']['name']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename($_FILES['uploadedfile']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
Lorsque je tente de télécharger un fichier en utilisant ce code, je reçois un Réponse "Post succès" à la fin du client, mais le fichier n'apparaît jamais sur mon serveur. J'ai CHMODed le dossier de fichiers à 777 juste au cas où, mais il ne semblait toujours pas fonctionner. Est-ce que quelqu'un a une suggestion, ou voit-il une erreur dans la façon dont j'aborde cela?
Merci!
+1 pour supprimer l'allocation étrangère + init + autorelease dans la création de la demande. J'ai eu un succès parfait en téléchargeant des fichiers sur une page php avec un code comme celui de Joe. –
Cheers, travaillé comme un charme. Merci! – minimalpop