2012-11-28 82 views
2

我是一個PHP文件轉換爲C#,完成了75%,堅持與這些線 C#等同於PHP file_put_contents

if(file_put_contents($uploaddir.$randomName, $decodedData)) { 
    //echo $randomName.":uploaded successfully"; //NO NEED TO CONVERT ECHO PART 
} 

PHP兄弟請幫

更多信息

我轉換

// Encode it correctly 
$encodedData = str_replace(' ','+',$data[1]); 
$decodedData = base64_decode($encodedData); 

這個

// Encode it correctly 
string encodedData = data[1].Replace(' ', '+'); 
string decodedData = base64Decode(encodedData); 

其中base64Decode

public static string base64Decode(string data) 
{ 
    byte[] binary = Convert.FromBase64String(data); 
    return Encoding.Default.GetString(binary); 
} 
+0

[file_put_contents()](http://php.net/file_put_contents)將一個字符串寫入一個文件,因此您需要打開一個文件,將該字符串寫入該文件,然後關閉該文件..如何實際編碼這在c#中超越了我,但這是流程的要點。 – Dale

+0

@shadyyx - 如果你只是回答問題而不是抱怨,那麼其他所有用'C#將內容寫入文件'的人都會在這裏得到答案*。 – hajikelist

+0

@hajikelist請原諒我?你在哪裏碰到我的暱稱?我在這裏的任何內容無關,這是評論,答案或他們的意見... – shadyyx

回答

4

試試這個:

System.IO.File.WriteAllText (uploaddir + randomname, decodedData); 

有關WriteAllText方法的詳細信息,請參見MSDN

然而,你對你的數據轉換爲字節數組,然後在base64Decode方法將其轉換爲字符串的方法,然後將其寫入文件是有點IMO太複雜了。你可以只寫你的字節數組到一個文件,解碼數據是這樣的:

public static byte[] base64Decode(string data) 
{ 
    return Convert.FromBase64String(data); 
} 

,然後調用

byte[] decodedData = base64Decode(encodedData); 
System.IO.File.WriteAllBytes(uploaddir + randomname, decodedData); 

WriteAllBytes文檔here

+0

正在嘗試這些,很快就會回來 – sajanyamaha

+0

這個確實不錯,同時你對編碼的建議也讓我有一天的時間。 – sajanyamaha

2

最近analogon可能是System.IO.File.WriteAllText

string uploaddir; 
string randomName; 
string decodedData; 
// .... 
System.IO.File.WriteAllText(
    System.IO.Path.Combine(uploaddir, randomName), 
    decodedData 
); 
+0

正在嘗試這些,很快就會回來 – sajanyamaha