2011-07-08 9 views
0

私は自分のコードで問題のセットの最初を解決したようです。私が話している質問はこれです:First Question。あなたが見ることができるように、与えられた答えは客観的な-cコードについてだけです。これは現在正しく動作しているようです。私のiPhoneアプリから私のサーバーにmp3をアップロードする

問題は、ファイルを見つけられないPHPコードのようです。$HTTP_POST_FILES['mainfile']['name']はnullを返します。問題がphpコードかobjective-cコード内にあるかどうかはわかりません。両方は、以下である:

Objective-Cのコード

NSString *theUrl = @"MyServerURL";//Sorry not showing this:) 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:theUrl]]; 

[request setFile:[soundFileURL path] forKey:@"mainfile"]; 
[request startSynchronous]; 

PHPコード

$SafeFile = $HTTP_POST_FILES['mainfile']['name']; 

$uploaddir = "uploads/"; 
$path = $uploaddir.$SafeFile; 
$mainfile = $HTTP_POST_FILES['mainfile']; 

$toWrite .= "\nThe path to which the file should be saved = " . $path . "\n"; 

if($mainfile != null){ //AS LONG AS A FILE WAS SELECTED... 
    $toWrite .= "The file is NOT NONE!\n"; 

    if(copy($HTTP_POST_FILES['mainfile']['tmp_name'], $path)){ //IF IT HAS BEEN COPIED... 
     $toWrite .= "The file was succesfully saved to the server! \n"; 
    } 
} 

この$toWrite変数はtxtファイルに書き込まれます。このファイルでは、最初に$toWrite$SafeFileが空であるように見えることがわかります。これは私にファイルがアクセス可能でないか、まったく送信されていないことを知らせました。

誰かが私がこの問題を解明するのを助けることができたら、私は最も感謝しています!

答えて

2

['name']は空でもかまいません。アップロードされたファイルが値である必要はありません。それにかかわらず、それを使用しないでください、これは、ドアをパストラバースの悪用を開きます。

あなたの2番目の問題は、PHP4で有効だった$HTTP_POST_FILESの使用かもしれません。今日の配列は$_FILESと呼ばれています。アップロードが成功したかどうか、またどの記述フィールドが存在するかを確認するには、他の操作を試す前にprint_r($_FILES);でテストしてください。

+0

print_r($ _ FILES)は、配列内に1つのファイルが存在することを示します(存在すると想定されているように)。しかし、私は変数をデータベースに格納するためにファイル名を持つ必要があります。どのようにこれを行うにはどのようなアイデア? これは単なるテストです、今私はフィルタリングする必要があります:) – Manuel

+0

これは '[name]'エントリを表示しますか?何もない場合、それを使用することはできません。または、obj-cコードを変更する必要があります。 – mario

+0

$ _FILESがトリックをしました!どうもありがとう!! – Manuel

関連する問題