asp.net-ASP.NET文件上传问题,一上传就提示失败

问题描述

ASP.NET文件上传问题,一上传就提示失败
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class xueshengzuoye: System.Web.UI.Page
{
public static string fname;
protected void Page_Load(object sender EventArgs e)
{
if (!IsPostBack)
{

        if (Request[""ID""] != null)        {            InitData();        }    }}private void FileUpLoad(){    if (UploadFile.Value != null)    {        string nam = UploadFile.PostedFile.FileName;        //取得文件名(抱括路径)里最后一个"".""的索引        int i = nam.LastIndexOf(""."");        //取得文件扩展名        string newext = nam.Substring(i);        //这里我自动根据日期和文件大小不同为文件命名确保文件名不重复        DateTime now = DateTime.Now;        string newname = now.ToFileTimeUtc() + UploadFile.PostedFile.ContentLength.ToString();        //保存文件到你所要的目录这里是IIS根目录下的uploadfiles目录        //注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里""""必须用""\""代替        UploadFile.PostedFile.SaveAs(Server.MapPath(""UpLoad/"" + newname + newext));        //得到这个文件的相关属性:文件名文件类型文件大小        fname = ""UpLoad/"" + newname + newext;    }}protected void InitData(){    string id = Request[""ID""].ToString();    try    {        string SQL = ""select * from TB_xueshengzuoye where ID='"" + id + ""'"";        DataTable dt = DBHelper.GetDataSet(SQL).Tables[0];        if (dt.Rows.Count > 0)        {            this.TextBox1.Text = dt.Rows[0][""ZuoYeName""].ToString();        }    }    catch    {    }}protected void Button1_Click(object sender EventArgs e){    if (UploadFile.Value != null && UploadFile.Value != """")    {        FileUpLoad();    }    string SQL = """";    bool iRet = false;    if (Request[""ID""] != null)    {        string id = Request[""ID""].ToString();        SQL = ""update TB_xueshengzuoye set ZuoYeName='"" + this.TextBox1.Text + ""'URl='"" + fname + ""' where ID='"" + id + ""'"";        iRet = DBHelper.ExecSql(SQL);    }    else    {        SQL = ""insert into TB_xueshengzuoye(ZuoYeNameURlAddUser ) values('"" + this.TextBox1.Text + ""''"" + fname + ""''"" + Session[""username""].ToString() + ""')"";        iRet = DBHelper.ExecSql(SQL);    }    if (iRet)    {        Response.Write(""<script>alert('恭喜您,操作成功!');document.location=document.location;</script>"");    }    else    {        Response.Write(""<script>alert('对不起,操作失败!');document.location=document.location;</script>"");    }}protected void Button2_Click(object sender EventArgs e){    this.TextBox1.Text = """";}

}
为什么一上传文件就提示对不起,操作失败!

解决方案

一个办法,代码跟踪一下

解决方案二:
自己设置断点跟踪调试一下,看下是文件上传失败还是数据库记录失败。

解决方案三:
建议如下:
1.文件保存与写入数据库分开调试
2.注意文件保存文件名不能相同
3.可能存在aspx执行文件路径与保存文件路径的匹派问题.以下VB代码供参考:

       Dim oleDbConnection11 As System.Data.OleDb.OleDbConnection    Dim oleDbDataAdapter11 As System.Data.OleDb.OleDbDataAdapter    Dim oleDbCommand11 As System.Data.OleDb.OleDbCommand    Dim reader_one As System.Data.OleDb.OleDbDataReader    Dim temp As String    oleDbConnection11 = New OleDbConnection    oleDbDataAdapter11 = New OleDbDataAdapter    oleDbCommand11 = New OleDbCommand    oleDbConnection11.ConnectionString = Session(""material_connectionstring"")    oleDbCommand11.Connection = oleDbConnection11    If Len(FileUpload1.PostedFile.FileName.Trim) = 0 Then        Page.ClientScript.RegisterClientScriptBlock(Me.GetType()PopupScript""alert('请选择一个上传文件!');"" True)        Return    End If    Dim mis kind file_path file_name upload_name file_add As String    Dim upload_id index_value file_length tmp As Double    mis = Request.QueryString(""mis"")    kind = Request.QueryString(""kind"")    file_add = Request.QueryString(""file_add"")    upload_id = Request.QueryString(""upload_id"")

重点关注 ** file_path = Left(Request.PhysicalPath InStrRev(Request.PhysicalPath"" -1) - 1) + ""upload"" **

    file_length = FileUpload1.PostedFile.ContentLength    tmp = InStrRev(FileUpload1.PostedFile.FileName"")    upload_name = Mid(FileUpload1.PostedFile.FileName tmp + 1 Len(FileUpload1.PostedFile.FileName) - tmp + 1)    ''返回    If Len(FileUpload1.PostedFile.FileName) = 0 Then        Page.ClientScript.RegisterClientScriptBlock(Me.GetType()PopupScript""alert('没有选择上传文件请检查!');"" True)        Return    End If    oleDbConnection11.Open()    '取最大序号    temp = ""select max(t.index_value) from upload t where t.mis = '""    temp = temp + mis + ""' and t.kind = '""    temp = temp + kind + ""' and t.upload_id = ""    temp = temp + upload_id.ToString    'TextBox1.Text = temp    'Return    oleDbCommand11.CommandText = temp    reader_one = oleDbCommand11.ExecuteReader()    Do While reader_one.Read()        If reader_one.IsDBNull(0) Then            index_value = 1        Else            index_value = (reader_one.GetValue(0) + 1)        End If    Loop    reader_one.Close()    oleDbConnection11.Close()    file_name = mis + ""_"" + kind + ""_"" + upload_id.ToString + ""_"" + index_value.ToString + ""."" + Right(upload_name.Trim (upload_name.Trim.Length - InStr(upload_name.Trim."")))    '写入数据库    oleDbConnection11.Open()    temp = ""INSERT INTO upload(mis kind upload_id index_valuefile_lengthupload_namefile_path file_name) VALUES('""    temp = temp + mis + ""'  '""    temp = temp + kind + ""'     temp = temp + upload_id.ToString + ""     temp = temp + index_value.ToString + ""     temp = temp + file_length.ToString + ""  '""    temp = temp + upload_name + ""'  '""    temp = temp + file_path + ""'  '""    temp = temp + file_name + ""')""    oleDbCommand11.CommandText = temp    oleDbCommand11.ExecuteNonQuery()    oleDbConnection11.Close()    '保存文件                           FileUpload1.PostedFile.SaveAs(file_path + file_name)    upload_status.Value = ""1""    'Label1.Text = file_name

解决方案四:
错误是什么都不贴出来,谁知道你报什么呀,还有你要注间是不是超大了!

解决方案五:
同上,跟踪代码啊,兄弟勤快些,耐心些哦

时间: 2024-11-03 18:52:18

asp.net-ASP.NET文件上传问题,一上传就提示失败的相关文章

利用ASP.NET设计FTP文件上传(純前臺代碼)

asp.net|上传|设计|asp.net|上传 <% @ Import Namespace=" System.IO " %><html ><BODY ><SCRIPT LANGUAGE = "VB" RUNAT = "SERVER" > Sub UploadFile_Clicked ( Sender as Object, e as EventArgs ) Dim lstrFileName as s

ASP.NET 2 的文件上传

asp.net|上传 在asp.net 2.0中,上传文件时变的比较方便了,因为有了fileupload控件,使用十分简单, if (FileUpload1.HasFile)            try            {                FileUpload1.SaveAs("d:\\luceneData\\" + FileUpload1.FileName);                Label1.Text = "File name: "

ASP.NET 应用中大文件上传研究

asp.net|上传 在项目中经常要用到了大文件上传,要上传的文件有100多m,于是研究现在国内使用的大文件上传的组件发现用的比较多的有两个控件AspnetUpload 2.0和Lion.Web.UpLoadModule,两个控件的方法是:利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据.Chris Hynes为我们提供了这样的一个方案(用HttpModule

利用ASP.NET设计FTP文件上传(下)

四. 程序源代码: <% @ Import Namespace=" System.IO " %><html ><BODY ><SCRIPT LANGUAGE = "VB" RUNAT = "SERVER" > Sub UploadFile_Clicked ( Sender as Object, e as EventArgs ) Dim lstrFileName as string Dim lstrF

ASP.NET应用中大文件上传研究

在项目中经常要用到了大文件上传,要上传的文件有100多m,于是研究现在国内使用的大文件上传的组件发现用的比较多的有两个控件AspnetUpload 2.0和Lion.Web.UpLoadModule,两个控件的方法是:利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据.Chris Hynes为我们提供了这样的一个方案(用HttpModule),该方案除了允许你上

Asp.Net 无刷新文件上传并显示进度条的实现方法及思路

相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认"拿来主义",只是我个人更喜欢凡是求个所以然.本篇将阐述通过Html,IHttpHandler和 IHttpAsyncHandler实现文件上传和上传进度的原理,希望对你有多帮助. 效果图: 本文涉及到的知识点: 1.前台用到Html,Ajax,JQuery,JQuery UI 2.后台用到一般处理程序(IHttpHandler)

解决ASP.NET Core Mvc文件上传限制问题实例_实用技巧

一.简介 在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢? 二.设置上传文件大小 1.应用程序级别设置 我们需要在 ConfigureServices方法中添加如下代码,设置文件上传的大小限制为60 MB. public void ConfigureServices(IServiceCollection services) { servicesConfigure<For

Asp.net(c#)常用文件操作类封装 移动 复制 删除 上传 下载等

Asp.net(c#)中常用文件操作类封装 包括:移动 复制 删除 上传 下载等 using System; using System.Configuration; using System.Data; using System.IO; using System.Text; using System.Threading; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.Ht

asp文件上传的速度和上传组件有关吗

问题描述 asp文件上传的速度和上传组件有关吗,我有两个上传文件源代码,一个上传组件是无惧上传组件一个是upload_5xsoft程序运行时前者上传文件90M很快上传了(都是本地上传到本地的),后者10M的都要很慢求解等大虾~~~ 解决方案 解决方案二:有关系有的组件做得很好上传很快解决方案三:由关系吧解决方案四:有关系的,尽量用第三方组件或者.Net上传,纯脚本写的效率不高