Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
iOS - Upload file su host aruba tramite app iphone
Forum - iOS - Upload file su host aruba tramite app iphone

Avatar
Biaso (Normal User)
Newbie


Messaggi: 6
Iscritto: 23/05/2012

Segnala al moderatore
Postato alle 14:38
Sabato, 26/05/2012
Salve ragazzi,
sono giorni che sbatto su questo problema, chiedo gentilmente il vostro aiuto.
Allora il problema è il seguente:
dalla mia app per iphone devo effettuare l'upload di file su un server aruba.
Premetto che la procedura che utilizzo attualmente e che posto tra qualche riga è perfettamente funzionante su altervista e non capisco perché non dovrebbe esserlo su aruba.
Lo script php per l'upload sul server è molto semplice ed è il seguente:
Codice sorgente - presumibilmente Delphi

  1. [CODE]
  2. $uploaddir = "D:/Inetpub/webs/dominiocom/public/upload/";
  3. $file = basename($_FILES['file']['name']);
  4. $uploadfile = $uploaddir . $file;
  5.  
  6. if (!(file_exists($uploadfile)))
  7. {
  8. if (mkdir($uploadfile))
  9. {
  10. if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile . "/" . $file . ".plist")) {
  11. echo ("{$file} creato correttamente!");
  12. }
  13. else
  14. {
  15. die ("Errore nello spostamento dei file nella directory predisposta.");
  16. }
  17. }
  18. else
  19. {
  20. die ("Il server non ha permesso la creazione di una nuova cartella");
  21. }
  22. }
  23. else
  24. {
  25. die ("$file esiste già!");
  26. }
  27. [/CODE]



Le cose che su aruba non funzionano (e su altervista si!!!) sono essenzialmente due:
-gli echo non vengono stampati mentre i die() si;
-la variabile $_FILES che dovrebbe contenere il file uploadato è sempre vuota.

Per quanto riguarda la connessione dall'iphone con NSURLConnection ecco il codice utilizzato (si tratta di un HTTP POST):
Codice sorgente - presumibilmente Delphi

  1. [CODE]
  2. //Image to send
  3. NSData *imageData = UIImageJPEGRepresentation(image.image, 90);
  4.         // setting up the URL to post to
  5.         NSString *urlString = @"http://miosito.com/public/upload.php";
  6.        
  7.         // setting up the request object now
  8.         NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
  9.         [request setURL:[NSURL URLWithString:urlString]];
  10.         [request setHTTPMethod:@"POST"];
  11.        
  12.         /*
  13.          add some header info now
  14.          we always need a boundary when we post a file
  15.          also we need to set the content type
  16.          
  17.          You might want to generate a random boundary.. this is just the same
  18.          as my output from wireshark on a valid html post
  19.         */
  20.    
  21.    
  22.         NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
  23.         NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
  24.         [request addValue:contentType forHTTPHeaderField: @"Content-Type"];
  25.  
  26.      
  27.         /*
  28.          now lets create the body of the post
  29.         */
  30.         NSMutableData *body = [NSMutableData data];
  31.         [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];       
  32.         [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"nome_del_file\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
  33.         [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
  34.         [body appendData:[NSData dataWithData:imageData]];
  35.         [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
  36.     //setting the body of the post to the reqeust
  37.         [request setHTTPBody:body];
  38.        
  39.         // now lets make the connection to the web
  40.         NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
  41.         NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
  42.        
  43.         NSLog(@"%@", returnString);
  44. [/CODE]



La stringa che stampo con NSLog è sempre "(null)".
Il server aruba è di tipo windows quindi tutti i file li metto nella cartella public (l'unica con i permessi di scrittura).
Qualche anima buona mi faccia capire dove cavolo sbaglio.
Grazie a tutti, un saluto.

Ultima modifica effettuata da Biaso il 26/05/2012 alle 14:55
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:20
Sabato, 26/05/2012
Hai controllato che aruba non blocchi alcune funzioni di php? Mi è capitato con alcuni host di avere funzioni disabilitate come ad esempio exit() o roba simile

PM Quote