使用ASP将文件上载到服务器.NET和C#
Upload a file to a server using ASP.NET and C#
我是表单的新手,正在努力了解正在发生的事情。我看了很多问题和教程,但在某些方面感觉不清楚。
到目前为止,我已经在aspx页面中创建了以下表单:
<form id="uploadbanner" enctype="multipart/form-data" method="post" action="#">
<span class="txtSmallGrey fl" style="display:block; width:200px; margin:15px; margin-bottom:2px">
<%= oUtils.GetContentText("Collect_Config_upload_sound") %>
</span>
<input type="file" name="SoundFile" id="SoundFile" style="margin:15px; margin-bottom:2px">
<input type="submit" value="Upload" id="submit" style="float:left; margin-left:245px; margin-top:1px; height:20px;">
</form>
我在页面顶部有以下脚本:
<%
if(Request.Form["SoundFile"] != "")
{
HttpPostedFile file = Request.Files["SoundFile"];
string fname = Path.GetFileName(file.FileName);
file.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", fname)));
}
%>
我对AJAX有一个合理的理解,所以其中一些对我来说似乎很熟悉
现在来解释一下我的理解:
该表单已声明并被赋予"uploadbanner"的id。当我传输文件时,我必须包含"enctype…"我发帖是因为它更安全、更灵活。
动作术语告诉表单投递到哪里。在这种情况下,我已经将C#代码放在页面的顶部,因此不需要包含asp.net页面地址来处理这一问题。如果我这样做了,我会包括一个asp.net页面,就像我为AJAX做的一样(我想?)。
表单标记中包含input标记的任何内容都将发布在表单中,并发送名称和值。
当按下提交按钮时,表单将提交给服务器端代码进行处理。到目前为止,我觉得我明白发生了什么。
现在我觉得不太清楚的部分,
- 当按下"提交"按钮时,C#代码是这样的吗页面顶部的字段将被激活,因此如果空白它不会有任何作用
- 如果按钮被按下多次,表格会是提交多次
- 如果是这样的话,那么这和AJAX的方式差不多?,文件将简单地传递到C#代码,在那里我可以使用它
- 我的最后一个问题是,我能用替代表格提交表格吗提交按钮的方法,例如我可以制作一个普通的JavaScript按钮吗并告诉它提交表格
是不是当按下"提交"按钮时,页面顶部的C#代码将被激活,因此如果字段为空,它将不会执行任何操作
是的,每次加载你的页面时,它都会运行C#代码,人们会假设如果你提交表单,它会检查发布的表单数据。最好检查HTTP标头
如果多次按下按钮,表格会被多次提交吗
是,表单将被多次提交
如果是这样,那么这与AJAX的方式非常相似?,文件将简单地传递给C#代码,从那里我可以用它做我需要的事情
这在HTTP请求的意义上是类似的,但你在页面上发布了一个附加的文件,然后C#通过运行请求来检查页面是否附加了文件。表单,然后请求。将文件和帖子发送到服务器
我的最后一个问题是,我可以使用提交按钮的替代方法提交表格吗?例如,我可以制作一个普通的JavaScript按钮并告诉它提交表格吗
您所说的普通JavaScript按钮是什么意思?您不必使用提交按钮。只要传入的文件和页面已加载,代码仍将运行。我有一个方法,当我发布到HTTPHandler时。下面的代码片段:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
HttpPostedFile postedFile = context.Request.Files["Filedata"];
string filename = postedFile.FileName;
var Extension = filename.Substring(filename.LastIndexOf('.')
+ 1).ToLower();
string savepath =HttpContext.Current.Server.MapPath("/images/profile/");
postedFile.SaveAs(savepath + @"'" + user.uid + filename);
}
因此,当提交时,我指向HttpHandler.ashx,这是一个实现IHttpHandler接口的类,它反过来获得当前上下文。
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- ASP.NET dropdownlist在服务器button_click中为空,ddl在客户端填充
- 从Div创建图像,并使用Javascript和ASP.net将其保存到服务器
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- ASP.Net模型到Javascript-将数据从服务器传递到客户端
- ASP.NET-具有客户端和服务器端的通用脚本
- 使用C#将在JavaScript中创建的变量值传递给ASP.Net中的服务器端(代码隐藏)
- asp.net javascript .click() 事件未在服务器上触发
- 使用HTML和任何服务器端语言(PHP,.net,ruby)制作的网站是否可以在每个具有浏览器的设备上工作
- 对服务器的 GET 请求返回 net::ERR_CONNECTION_REFUSED
- 是否可以将 ASP.NET Web 应用程序上载到 VMware 上的虚拟 2008 服务器上
- 如何在 asp.net 中从 javascript 调用服务器端代码
- ASP.net自定义控件,下拉值必须在服务器端填充,所选值在返回时丢失
- 在drawImage、C#、AJAX、ASP.NET之后将图像从画布保存到Web服务器
- 使用ASP将文件上载到服务器.NET和C#
- 使用c#在asp.net中使用JavaScript在服务器端调用TextChange Event
- 使用javascript ASP.NET获取服务器控件上的子控件
- ASP.NET页面:当服务器返回要下载的文件时,如何调用javascript方法
- ASP.NET 从 JQuery 设置时,服务器端的文本框值为空
- 是否可以在 asp.net 中使用 JavaScript 创建服务器端列表框控件