PHP文件_put_contents的C#等价物

时间:2012-11-28 10:56:58

标签: c# php

我正在将PHP文件转换为C#,完成75%,坚持使用这些行

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);
}

2 个答案:

答案 0 :(得分:5)

试试这个:

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

答案 1 :(得分:2)

最近的类比可能是System.IO.File.WriteAllText

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