我上传的文件,可以上传到服务器,可怎么存不了数据库呢?
老是说file附近有错.帮我看看哦.
protected void okBtn_Click(object sender, EventArgs e)
{
string file_path = FileUpload1.PostedFile.FileName.ToLower();
string filename= ""; // 上传文件的文件名(原名)
int size = FileUpload1.PostedFile.ContentLength;//上传文件的大小
// 从web.config文件中读取文件上传的路径;
string root = System.Configuration.ConfigurationSettings.AppSettings["upload"];
if (file_path.Equals(""))
{
Response.Write("<script>alert('请选择文件!')</script>");
return;
} if (size == 0)
{
Response.Write("<script>alert('找不到文件!')</script>");
return;
}
// 对文件名进行处理,使该文件名是唯一的,这里的做法是加入文件上传的时间;
int position = file_path.LastIndexOf("\\");
string uptime = DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss");
filename = file_path.Substring(position + 1);
string uploadfile = uptime + filename;
// 判断upload目录是否存在,如果不存在就创建该目录;
if (!Directory.Exists(root))
{
Directory.CreateDirectory(root);
}
// 指明上传的路径
string destination = root + uptime + filename;
// 在服务器保存文件;
FileUpload1.PostedFile.SaveAs(destination);
SqlConnection meteor = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["meteor"]);
meteor.Open();
SqlCommand cmd = new SqlCommand("insert into file(uploadfile,filename) values ('" + uploadfile + "','" + filename + "')", meteor);
cmd.ExecuteNonQuery();
meteor.Close();
Response.Write("<script>alert('上传成功!')</script>");
}
老是说file附近有错.帮我看看哦.
protected void okBtn_Click(object sender, EventArgs e)
{
string file_path = FileUpload1.PostedFile.FileName.ToLower();
string filename= ""; // 上传文件的文件名(原名)
int size = FileUpload1.PostedFile.ContentLength;//上传文件的大小
// 从web.config文件中读取文件上传的路径;
string root = System.Configuration.ConfigurationSettings.AppSettings["upload"];
if (file_path.Equals(""))
{
Response.Write("<script>alert('请选择文件!')</script>");
return;
} if (size == 0)
{
Response.Write("<script>alert('找不到文件!')</script>");
return;
}
// 对文件名进行处理,使该文件名是唯一的,这里的做法是加入文件上传的时间;
int position = file_path.LastIndexOf("\\");
string uptime = DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss");
filename = file_path.Substring(position + 1);
string uploadfile = uptime + filename;
// 判断upload目录是否存在,如果不存在就创建该目录;
if (!Directory.Exists(root))
{
Directory.CreateDirectory(root);
}
// 指明上传的路径
string destination = root + uptime + filename;
// 在服务器保存文件;
FileUpload1.PostedFile.SaveAs(destination);
SqlConnection meteor = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["meteor"]);
meteor.Open();
SqlCommand cmd = new SqlCommand("insert into file(uploadfile,filename) values ('" + uploadfile + "','" + filename + "')", meteor);
cmd.ExecuteNonQuery();
meteor.Close();
Response.Write("<script>alert('上传成功!')</script>");
}
If filePath.HasFile Then
Dim Buffer As Byte() = New Byte(filePath.PostedFile.ContentLength) {}
Dim Sr As FileStream = New FileStream(filePath.PostedFile.FileName, FileMode.Open, FileAccess.Read)
Try
Sr.Read(Buffer, 0, filePath.PostedFile.ContentLength)
Sr.Close()
Catch ex As Exception End Try
Return Buffer
End If End Function 'Add new picture
Protected Sub dvAdv_ItemInserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewInsertEventArgs) Handles dvAdv.ItemInserting
Dim StoreID As String = Server.HtmlEncode(CType(Me.dvAdv.Rows(0).Cells(1).Controls(1), DropDownList).SelectedValue.ToString().Trim())
Dim AdvType As String = Server.HtmlEncode(CType(Me.dvAdv.Rows(1).Cells(1).Controls(1), DropDownList).SelectedValue.Trim().ToString())
Dim Name As String = Server.HtmlEncode(CType(Me.dvAdv.Rows(2).Cells(1).Controls(1), TextBox).Text.Trim().ToString())
Dim Image As FileUpload = CType(Me.dvAdv.Rows(4).Cells(1).Controls(1), FileUpload)
'Dim ImageType As String = CType(Me.dvAdv.Rows(5).Cells(1).Controls(1), DropDownList).SelectedValue
Dim HyperLink As String = Server.HtmlEncode(CType(Me.dvAdv.Rows(5).Cells(1).Controls(0), TextBox).Text.ToString().Trim())
'Dim Map As String = Server.HtmlEncode(CType(Me.dvAdv.Rows(6).Cells(1).Controls(0), TextBox).Text.ToString().Trim())
Dim AlternateText As String = Server.HtmlEncode(CType(Me.dvAdv.Rows(3).Cells(1).Controls(1), TextBox).Text.Trim())
Dim Seq As Integer
If IsNotEmpty(Server.HtmlEncode(CType(Me.dvAdv.Rows(7).Cells(1).Controls(1), TextBox).Text.Trim())) Then
Seq = CType(Server.HtmlEncode(CType(Me.dvAdv.Rows(7).Cells(1).Controls(1), TextBox).Text.Trim()), Integer)
Else
Seq = Nothing
End If Dim StartDate As DateTime = Server.HtmlEncode(CType(Me.dvAdv.Rows(8).Cells(1).Controls(1), HtmlInputText).Value.Trim())
Dim EndDate As DateTime = Server.HtmlEncode(CType(Me.dvAdv.Rows(9).Cells(1).Controls(1), HtmlInputText).Value.Trim())
'Dim UpdateBy As String = Server.HtmlEncode(CType(Me.dvAdv.Rows(11).Cells(1).Controls(1), TextBox).Text.Trim())
Dim Publish As String = Server.HtmlEncode(CType(Me.dvAdv.Rows(10).Cells(1).Controls(1), DropDownList).SelectedValue) Dim InsertSql As String = "INSERT INTO tbBannerAdv" & _
" VALUES(@StoreID,@AdvType,@Name,@Image,@Dimension,@ImageType,@HyperLink,null,@AlternateText,@Seq,@StartDate,@EndDate,@UpdateBy,getdate(),@Publish,default,default)"
Dim Content As Byte()
If Image.HasFile Then
Dim Extension = IsAllowedExtension(Image)
If Extension <> "N/A" Then
Dim Dimension As String = IIf(Extension <> "application/x-shockwave-flash", GetPixel(Image), "")
Using Con As SqlConnection = New SqlConnection(ConStr)
Using Cmd As SqlCommand = New SqlCommand(InsertSql, Con)
Try
Cmd.Parameters.AddWithValue("@StoreID", StoreID)
Cmd.Parameters.AddWithValue("@AdvType", AdvType)
Cmd.Parameters.AddWithValue("@Name", Name)
Content = ConvertToByte(Image)
Cmd.Parameters.AddWithValue("@Image", Content)
Cmd.Parameters.AddWithValue("@Dimension", Dimension)
Cmd.Parameters.AddWithValue("@ImageType", Extension)
Cmd.Parameters.AddWithValue("@HyperLink", HyperLink)
'Cmd.Parameters.AddWithValue("@Map", Map)
Cmd.Parameters.AddWithValue("@AlternateText", AlternateText)
Cmd.Parameters.AddWithValue("@Seq", Seq)
Cmd.Parameters.AddWithValue("@StartDate", StartDate)
Cmd.Parameters.AddWithValue("@EndDate", EndDate)
Cmd.Parameters.AddWithValue("@UpdateBy", Session("eStoreAdmin").AdminEmail())
Cmd.Parameters.AddWithValue("@Publish", Publish) Con.Open()
Cmd.ExecuteNonQuery()
BindGrid()
Me.mvView.ActiveViewIndex = 0
Catch ex As Exception
ShowMessage("Add failed,please try again!")
End Try
End Using
End Using
Else
ShowMessage("Incorrect format,please try again!")
End If End If
End Sub
'verify extension
Public Shared Function IsAllowedExtension(ByVal Files As FileUpload) As String
If Files.HasFile Then
Dim FileTypesAllow() As String = {"application/x-shockwave-flash", "image/jpeg", "image/gif", "image/png"}
If Array.IndexOf(FileTypesAllow, Files.PostedFile.ContentType) >= 0 Then
Return Files.PostedFile.ContentType
Else
Return "N/A"
End If
Public Shared Function IsAllowedExtension(ByVal Files As FileUpload) As String
If Files.HasFile Then
Dim FileTypesAllow() As String = {"application/x-shockwave-flash", "image/jpeg", "image/gif", "image/png"}
If Array.IndexOf(FileTypesAllow, Files.PostedFile.ContentType) >= 0 Then
Return Files.PostedFile.ContentType
Else
Return "N/A"
End If
Else
Return "N/A"
End If End Function
string lsField, lsValue;
System.Data.SqlClient.SqlConnection SqlConn = new System.Data.SqlClient.SqlConnection(ConnectionString);
SqlConn.Open();
System.Data.SqlClient.SqlTransaction SqlTran = SqlConn.BeginTransaction();
System.Data.SqlClient.SqlCommand SqlComm = new System.Data.SqlClient.SqlCommand();
try
{
SqlComm.Connection = SqlConn;
SqlComm.Transaction = SqlTran;
//以下是保存文件部分
System.Web.HttpFileCollection Files = System.Web.HttpContext.Current.Request.Files;
string Filename;
string FilePostfix;
string FileSize;
string FileGenre;
System.IO.Stream FileStream;
for (int i = 0; i < Files.Count; i++)
{
System.Web.HttpPostedFile PostedFile = Files[i];
Filename = System.IO.Path.GetFileName(PostedFile.FileName).ToString().Trim();
if (Filename.Length > 0)
{
FilePostfix = System.IO.Path.GetExtension(Filename);
Filename = Filename.Substring(0, Filename.Length - FilePostfix.Length);
FileGenre = PostedFile.ContentType.ToString().Trim();
FileSize = PostedFile.ContentLength.ToString().Trim();
lsField = "NodeId, Filename, Filematter, Postfix, Filesize";
lsValue = StringUtil.String(dtNow.AddSeconds(i).ToString("yyyyMMddhhmmss"));
lsValue += StringUtil.String(Filename) + ", ";
lsValue += "@Content, ";
lsValue += StringUtil.String(FilePostfix) + ", ";
lsValue += StringUtil.Integer(FileSize) + "";
FileStream = PostedFile.InputStream;
byte[] File = new byte[PostedFile.ContentLength];
FileStream.Read(File, 0, PostedFile.ContentLength); SqlComm.Parameters.Clear();
SqlComm.CommandText = "INSERT INTO Crit_" + TabName + "_FILE (" + lsField + ") VALUES (" + lsValue + ")";
SqlComm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Content", SqlDbType.Image)).Value = File;
SqlComm.ExecuteNonQuery();
}
}
SqlTran.Commit();
return true;
}
catch (Exception ex)
{
SqlTran.Rollback();
ex.ToString();
return false;
}
meteor.Open();
String InsertCmd="insert into file(uploadfile,filename) values ('" + uploadfile + "','" + filename + "')";
SqlCommand cmd = new SqlCommand(InsertCmd, meteor);
cmd.ExecuteNonQuery();
meteor.Close(); 然后搞个TextBox来显示InsertCmd语句参数转换后的结果:
txt_test1=InsertCmd.toString()把这个结果直接到查询分析器里执行一下,排除SQL语句的问题