用ajax和c#web方法代码调用uploadfile控件
如何使用上载文件控件C#和一个以上参数调用Ajax请参阅下面的代码并帮助我,我想保存一个包含多个参数的图像以更新图像。请帮我做到这一点 我想用多个参数更新图像 C#代码用ajax和c#web方法代码调用uploadfile控件,c#,asp.net,ajax,asp.net-web-api,C#,Asp.net,Ajax,Asp.net Web Api,如何使用上载文件控件C#和一个以上参数调用Ajax请参阅下面的代码并帮助我,我想保存一个包含多个参数的图像以更新图像。请帮我做到这一点 我想用多个参数更新图像 C#代码 [WebMethod] public static string updateid(FileUpload FileUpload1, string currentid) { HttpContext context = HttpContext.Current; string baseUrl = context.Re
[WebMethod]
public static string updateid(FileUpload FileUpload1, string currentid)
{
HttpContext context = HttpContext.Current;
string baseUrl = context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/');
if (FileUpload1.HasFile)
{
try
{
if (FileUpload1.PostedFile.ContentLength < 3267633)
{
string strname = FileUpload1.FileName.ToString();
string url = "http://" + baseUrl + "/Images/" + strname;
FileUpload1.PostedFile.SaveAs(url);
int id = Convert.ToInt16(appVars.updatedid);
string Query = "UPDATE SubCategories SET imageurl = WHERE id = " + id;
string result = dbAccess.ExecuteOnlyQuery(Query);
}
else
{
}
}
catch (Exception ex)
{
}
}
return "";
}
[WebMethod]
公共静态字符串updateid(FileUpload FileUpload1,string currentid)
{
HttpContext=HttpContext.Current;
字符串baseUrl=context.Request.Url.Authority+context.Request.ApplicationPath.TrimEnd('/');
if(FileUpload1.HasFile)
{
尝试
{
if(FileUpload1.PostedFile.ContentLength<3267633)
{
字符串strname=FileUpload1.FileName.ToString();
string url=“http://”+baseUrl+“/Images/”+strname;
FileUpload1.PostedFile.SaveAs(url);
int id=Convert.ToInt16(appVars.updateId);
string Query=“更新子类别集imageurl=WHERE id=“+id;
字符串结果=dbAccess.ExecuteOnlyQuery(查询);
}
其他的
{
}
}
捕获(例外情况除外)
{
}
}
返回“”;
}
您可能无法执行该AJAX调用并提交文件,因为输入文件控制受到限制:出于安全原因,浏览器不允许客户端脚本从用户的硬盘上拾取文件
因此,您必须使用已经存在的机制:所述输入文件元素必须位于表单元素中,您可以使用按钮元素或输入提交元素,或者在需要时执行form.submit()
,提交表单元素(例如,在输入文件的onchange
事件中,或在某个自定义按钮的onclick
或类似按钮中)
同样,我怀疑您是否能够找到从JS获取文件内容的方法。使用Flash组件可以获得更多的控制,但这又增加了复杂性和依赖性。您可以轻松地设置输入文件控件的样式,使其外观不同(甚至不显示其按钮),并且对于服务器端,您必须为HttpPost
调整该方法,不接受任何参数(然后您必须通过Request.Files
找到它们)
currentid
值可能包含在客户机上隐藏的输入中,并且它需要命名,就像输入文件一样,以便它成为表单提交包的一部分
我希望这有帮助
[WebMethod]
public static string updateid(FileUpload FileUpload1, string currentid)
{
HttpContext context = HttpContext.Current;
string baseUrl = context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/');
if (FileUpload1.HasFile)
{
try
{
if (FileUpload1.PostedFile.ContentLength < 3267633)
{
string strname = FileUpload1.FileName.ToString();
string url = "http://" + baseUrl + "/Images/" + strname;
FileUpload1.PostedFile.SaveAs(url);
int id = Convert.ToInt16(appVars.updatedid);
string Query = "UPDATE SubCategories SET imageurl = WHERE id = " + id;
string result = dbAccess.ExecuteOnlyQuery(Query);
}
else
{
}
}
catch (Exception ex)
{
}
}
return "";
}