2011-06-28 11 views
1

私はインターネット上の問題についてかなりのアドバイスを見つけましたが、私が試したことは何も動作していないようです。これは、ここでチュートリアルに基づいて、私のObjective-Cのコードを、次のとおりです。http://iphone.zcentric.com/2008/08/29/post-a-uiimage-to-the-web/iPadアプリからPHPにファイルをMYSQLにアップロードするにはどうすればよいですか?

NSString *importFilePath = [openedUrl path]; 
NSString *filename = [importFilePath lastPathComponent]; 

//I changed this from initwithcontentsoffile because the program gets handed a url 
//so I thought it made the most sense 
NSData *data = [[NSData alloc] initWithContentsOfURL:openedUrl]; 


NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:@"http://mysite.php?secret=%@&secret2=%@"]]; 
NSLog(@"the url: %@", [lastView uploadData:openedUrl]); 
[request setHTTPMethod:@"POST"]; 

NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; 
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
[request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

NSMutableData *body = [NSMutableData data]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\";filename=\"%@\"\r\n",filename] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[NSData dataWithData:data]]; 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
// setting the body of the post to the reqeust 
[request setHTTPBody:body]; 

// now lets make the connection to the web 
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 

私は自分自身であることを、新しいファイルのファイル名やURLにファイル名を変更しました。それ以外はチュートリアルに似ています。

私は自分のPHPファイルを変更しました。私はファイルとしてURLにハードコード、それは素晴らしい作品です。しかし、私はそれを私のアプリからファイルを渡そうとすると、ファイルの内容なしで、名前だけが渡されます。私は動作していない部分が私のPHPファイルまたは私の目的コードから来たものかどうかはわかりません。ここでは新しい改良PHPファイルです:

<? 
$username=$_GET['secret']; 
$password=$_GET['secret2']; 
$database="somedb"; 

mysql_connect(localhost,$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 

$fileName = $_FILES['userfile']['name']; 
$tmpName = $_FILES['userfile']['tmp_name']; 

$testpage = file_get_contents('$tmpName'); 
$testpage = mysql_real_escape_string($testpage); 
mysql_query("INSERT INTO tbldocuments(Description,Document) VALUES('$fileName','$testpage')"); 
mysql_close; 
?> 

あなたは、コードのスニペットのいずれかに何かを見ることができる場合、私に知らせてください - またはそれらが相互作用または任意の提案を持っている方法で、ギャップが存在する場合。

ありがとうございます! R

+0

これは実際のコードですか? 'Filename'を初期化しますが、Objective-Cでは' filename'変数を逆参照します。 – sarnold

+0

このPHPの例は、「悪い」サイトのものか、古いPHPバージョンを扱ったものでなければなりません。 addslashesは、SQLステートメントの使用のためにデータを準備するために推奨されなくなった主なメソッドです。 –

+0

ほとんどの部分(ファイル名部分)、これは実際のコードです...私は多くの目的を理解していますが、私はここで何が起こっているのか分かりません。この例ではipod.pngの代わりにFILEの関連ファイル名を使用しています。そして、PHPはこのサイトから来ました:http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx私はそれを捨てて、PHPでやり直すべきでしょうか?またはこれで動作しますか? – Rossi

答えて

関連する問題