我正在尝试创建一个简单的表单,用户可以在其中输入个人详细信息并上传文件。然后将用户的详细信息插入到数据库中,并将文件上载到特定文件夹;我已经让两个人分开工作,但我希望他们同时工作,理想情况下使用相同的“提交”按钮和/或POST请求。
到目前为止,这是一个整洁的代码版本:
@using Microsoft.Web.Helpers;
<form method="POST">
<input type="text" id="name" name="name" />
@FileUpload.GetHtml(
initialNumberOfFiles:1,
allowMoreFilesToBeAdded:false,
includeFormTag:true,
uploadText:"Upload")
</form>
if(IsPost) {
var n = Request.Form["name"];
var fileSavePath = "";
var uploadedFile = Request.Files[0];
string file = "afilename";
fileType = Path.GetExtension(uploadedFile.FileName);
fileName = file + fileType;
fileSavePath = Server.MapPath("~/Folder/" + fileName);
uploadedFile.SaveAs(fileSavePath);
using(SqlConnection con = new SqlConnection("server=.\\SQLEXPRESS;database=mydb;user id=user;password=pass;"))
{
string insert = "INSERT INTO Items VALUES ('" + file + "','" + n + "')";
con.Open();
using(SqlCommand cmd = new SqlCommand(insert,con))
{
SqlDataReader reader = cmd.ExecuteReader();
}
}
}
我遇到的问题是在帖子上请求表单值:
string insert = "INSERT INTO Items VALUES ('" + fileName + "','" + n + "')";
在上面一行中,变量'fileName'被插入到数据库ok中,而'n'被返回空白,因此该行变为:
string insert = "INSERT INTO Items VALUES ('afilename.jpg','')";
是否可以使用此方法实现我的目标?
答案 0 :(得分:2)
尝试将表单标记更改为:
<form method="post" enctype="multipart/form-data">