我需要使用C#从Windows移动应用上传文件到网站。它正在运行PHP作为另一方面的Web服务,但我想如果有另一种方法可以在那里获取文件,它真的没有必要。但是,没有服务器端ASP支持。我的问题不是PHP,而是移动C#代码。
此外, System.net.WebClient 在紧凑框架中不存在,所以不幸的是,这个简单的解决方案已经消失。
让我提前道歉,因为我知道这是一个相对常见的问题,但我似乎无法找到答案。我花了不少时间在这个特定的问题上没有解决方案,所以任何帮助都会非常感激。非常感谢!
答案 0 :(得分:2)
在MSDN中查看这篇文章Improving .NET Compact Framework HTTP Communications using HttpWebRequest and Custom ASP.NET Providers。它专门针对ASP技术, 但紧凑框架保持不变。基本上它使用带有PUT方法的HttpWebRequest。如果您不允许在服务器中执行此操作,则需要自己创建一系列POST请求并相应地处理它们。
答案 1 :(得分:0)
以下代码段可能有助于解决我们在此讨论的问题。 如果与此主题无关,请忽略它。
有关如何使用文章或代码的简要说明。类名,方法和属性,任何技巧或提示。
代码块应设置为“格式化”样式,如下所示:
示例代码
using System.Data;
using System.Data.Sql
using System.Data.SqlClient;
using System.Web;
using System.Web.Services;
public class FileUploader: System.Web.Services.WebService {
SqlConnection myConnection = new SqlConnection("Data Source=server name ;Initial Catalog=database name; User ID=username; Password='password';");
SqlCommand myCommand = new SqlCommand();
string queryString = "";
public string UploadFile(byte[] f, string fileName)
{
// the byte array argument contains the content of the file
// the string argument contains the name and extension
// of the file passed in the byte array
string nm = data[0];
string sn =data[1];
string bn =data[2];
string st = data[3];
byte img = Convert.Tobyte(img);
myConnection.Open();
queryString = "INSERT INTO tablename(Name,SchemeName,BeneficiarName,Status,Photo)"
+ "VALUES('" + nm + "','" + sn + "','"+ bn +"','" + st + "',@img,')";
myCommand.Parameters.AddWithValue("@img",f);
myCommand.Connection = myConnection;
myCommand.CommandType = CommandType.Text; myCommand.CommandText = queryString; int res = myCommand.ExecuteNonQuery(); myConnection.Close();
if (res > 0)
{
strres = "File Uploaded successfully"; }
else
{
strres = "File not uploaded";
}
return strres;
}
要求
Visual Studio.Net 2005
.Net Framework 2.0
MS SQL Server 2000数据库或MS SQL Server 2005数据库。