2

我正在将 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);
}
4

2 回答 2

6

试试这个:

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

有关该方法的详细信息,请参阅MSDNWriteAllText

但是,您将数据转换为字节数组,然后在base64Decode方法中将其转换为字符串,然后将其写入文件的方法有点太复杂了 IMO。您可以将字节数组写入文件,像这样解码数据:

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

然后打电话

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

WriteAllBytes 文档在这里

于 2012-11-28T11:10:50.113 回答
2

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

string uploaddir;
string randomName;
string decodedData;
// ....
System.IO.File.WriteAllText(
  System.IO.Path.Combine(uploaddir, randomName),
  decodedData
);
于 2012-11-28T11:09:13.523 回答