我正在尝试创建一个简单的表单,用户可以在其中输入他们的个人详细信息并上传文件。然后将用户的详细信息插入数据库,并将文件上传到特定文件夹;我让两者分开工作,但我希望它们同时工作,理想情况下使用相同的“提交”按钮和/或 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();
}
}
}
我遇到的问题是在 post 上请求表单值时:
string insert = "INSERT INTO Items VALUES ('" + fileName + "','" + n + "')";
在上面的行中,变量'fileName'被插入到数据库中,而'n'返回空白,所以这一行变成:
string insert = "INSERT INTO Items VALUES ('afilename.jpg','')";
使用这种方法可以实现我的目标吗?