2012-04-24 5 views
0

私はこのコードをAndroidからサーバーに転送して、完全に正常に動作するようにAndroidから呼び出しています。ASP.NETファイルのアップロードページに「500エラー」がありますか?

<?php 
$target_path = "./"; 
$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!"; 
} 
?> 

しかし、私のサーバアプリケーションが.NETであると私は、.NET にこのコードを記述する必要があり、私は、.NETバージョンのコードを記述しようとしたが、それは動作しませんと500 internal server errorを返します。

public partial class uploadfiles : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      HttpFileCollection uploadFile = Request.Files; 
      if (uploadFile.Count > 0) 
      { 
       HttpPostedFile postedFile = uploadFile[0]; 
       System.IO.Stream inStream = postedFile.InputStream; 
       byte[] fileData = new byte[postedFile.ContentLength]; 
       inStream.Read(fileData, 0, postedFile.ContentLength); 
       postedFile.SaveAs(Server.MapPath("Data") + "\\" + postedFile.FileName); 
      }   
     } 
     catch (Exception ex) 
     { 
      StringBuilder sb = new StringBuilder(); 
      sb.AppendLine("Message : " +ex.Message); 
      sb.AppendLine("Source : " + ex.Source); 
      sb.AppendLine("StackTrace : " + ex.StackTrace); 
      sb.AppendLine("InnerException : " + ex.InnerException); 
      sb.AppendLine("ToString : " + ex.ToString()); 

      LogInToFile(sb.ToString()); 
     } 
    } 
} 

ログには例外が記録されず、最初の行に届かないとも考えられます。私はログファイルを通してそれをチェックした。それは動作しません。助けてください。 〜/データ/あなたがファイルを保存する場所です

postedFile.SaveAs(Server.MapPath("~/Data/" + postedFile.FileName)); 

:。

Androidのコードは、これを試してみてください

HttpURLConnection connection = null; 
DataOutputStream outputStream = null; 
DataInputStream inputStream = null; 

String pathToOurFile = "/data/file_to_send.mp3"; 
String urlServer = "http://192.168.1.1/handle_upload.php"; 
String lineEnd = "\r\n"; 
String twoHyphens = "--"; 
String boundary = "*****"; 

int bytesRead, bytesAvailable, bufferSize; 
byte[] buffer; 
int maxBufferSize = 1*1024*1024; 

try 
{ 
FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile)); 

URL url = new URL(urlServer); 
connection = (HttpURLConnection) url.openConnection(); 

// Allow Inputs & Outputs 
connection.setDoInput(true); 
connection.setDoOutput(true); 
connection.setUseCaches(false); 

// Enable POST method 
connection.setRequestMethod("POST"); 

connection.setRequestProperty("Connection", "Keep-Alive"); 
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); 

outputStream = new DataOutputStream(connection.getOutputStream()); 
outputStream.writeBytes(twoHyphens + boundary + lineEnd); 
outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\"" + lineEnd); 
outputStream.writeBytes(lineEnd); 

bytesAvailable = fileInputStream.available(); 
bufferSize = Math.min(bytesAvailable, maxBufferSize); 
buffer = new byte[bufferSize]; 

// Read file 
bytesRead = fileInputStream.read(buffer, 0, bufferSize); 

while (bytesRead > 0) 
{ 
outputStream.write(buffer, 0, bufferSize); 
bytesAvailable = fileInputStream.available(); 
bufferSize = Math.min(bytesAvailable, maxBufferSize); 
bytesRead = fileInputStream.read(buffer, 0, bufferSize); 
} 

outputStream.writeBytes(lineEnd); 
outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

// Responses from the server (code and message) 
serverResponseCode = connection.getResponseCode(); 
serverResponseMessage = connection.getResponseMessage(); 

fileInputStream.close(); 
outputStream.flush(); 
outputStream.close(); 
} 
catch (Exception ex) 
{ 
//Exception handling 
} 
+0

'、(サーバー上WinRをあなたのイベントログを確認してくださいeventvwr.msc') - 関連するエントリはありますか? – penartur

+0

アップロードしようとしているファイルのサイズは? – Ramesh

+0

ファイルサイズは約4〜5 MBです。 – Azhar

答えて

2

ASP.NETアプリケーションのデフォルトの最大ファイルサイズの上限は4 MBです。あなたはファイルサイズ制限の設定についての詳細を学ぶためには、web.configファイルに

<system.web> 
    <httpRuntime maxRequestLength="20480" /> 
</system.web> 

を以下に設定することで、より大きなサイズを受け入れるようにアプリケーションを設定することができますLarge file uploads in ASP.NETをチェックアウト

1

を下回っています

+ postedFile.FileName your filename。

よろしくお願いします。

関連する問題