急!关于asp实现文件(html,word.excel等)上传,回显的方法!!!(200分)

  • 主题发起人 主题发起人 遗留世纪末404
  • 开始时间 开始时间

遗留世纪末404

Unregistered / Unconfirmed
GUEST, unregistred user!
我用过第三方组件safileup,就是不行,郁闷中.有人用过吗?指点一二!!
有无其他方法实现,如不用组件实现的.
而且文件上传的人可能会很多,要不要控制线程.
本人已经看过前面的帖子了,不用重复了!
另外有没有在网页回显的原码
先谢再前了,本人asp菜鸟
 
http://www.wushuang.net/develop/upfile.zip
是左轻侯的一个ASP文件上传组件,但只支持上传一个文件;
别的功能比较齐备,可以同时上传多个文件的ASP文件上传组件要付费的。如ASPUPLOAD
 
to yourice:
真得好用,不过.因为是二进制的数据enctype="multipart/form-data",
在test.asp中不能调用request.form("")
有办法解决吗?
 
当然可以的:
form1.aspx
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
namespace uploadFile
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.HtmlControls.HtmlInputText imgName;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.HtmlControls.HtmlInputFile UploadFile;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_Click(object sender, System.EventArgs e)
{
Stream imgStream;
int imgLen;
string imgName_value;
string imgContentType;
string imgUploadedName;
imgStream = UploadFile.PostedFile.InputStream;
imgLen = UploadFile.PostedFile.ContentLength;
imgUploadedName = UploadFile.PostedFile.FileName;
byte[] imgBinaryData=new byte[imgLen];
imgContentType = UploadFile.PostedFile.ContentType;
imgName_value = imgName.Value;
try
{
if(imgName_value.Length < 1)
{

imgName_value = GetLastRightOf("//",imgUploadedName );
}
}
catch(Exception myEx)
{
Response.Write(myEx.Message);
}
int n = imgStream.Read(imgBinaryData, 0, imgLen);
int NumRowsAffected = MyDatabaseMethod(imgName_value, imgBinaryData, imgContentType);
if(NumRowsAffected > 0)
Response.Write( "<BR> uploaded image " );
else
Response.Write ( "<BR> an error occurred uploading the image.d " );
}
public string GetLastRightOf(string LookFor,string myString)
{
int StrPos;
StrPos = myString.LastIndexOf(LookFor);
return myString.Substring(StrPos + 1);
}
public int MyDatabaseMethod(string imgName,byte[] imgbin,string imgcontenttype)
{
string Connstr="Data Source=localhost;
uid=sa;
pwd=;
Initial Catalog=companynet";
SqlConnection connection=new SqlConnection(Connstr);
string SQL="INSERT INTO Imagelist (img_name,img_data,img_contenttype) VALUES ( @img_name, @img_data,@img_contenttype )";
SqlCommand command=new SqlCommand ( SQL,connection );
SqlParameter param0=new SqlParameter ( "@img_name", SqlDbType.VarChar,50 );
param0.Value = imgName;
command.Parameters.Add( param0 );
SqlParameter param1=new SqlParameter ( "@img_data", SqlDbType.Image );
param1.Value = imgbin;
command.Parameters.Add( param1 );
SqlParameter param2 =new SqlParameter ( "@img_contenttype", SqlDbType.VarChar,50 );
param2.Value = imgcontenttype;
command.Parameters.Add( param2 );
connection.Open();
int numRowsAffected = command.ExecuteNonQuery();
connection.Close();
return numRowsAffected;
}
private void Button2_Click(object sender, System.EventArgs e)
{
Response.Write("<table align=center width=50 border=1>");
for(int i=14;i<19;i++)
{
Response.Write("<tr><td>");
Response.Write("<img src=form2.aspx?id=" + i +">");
Response.Write("</td><td>zhuhongbo</td>");
Response.Write("</td></tr>");
}
Response.Write("</table>");
}
}
}
form2.aspx:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;
namespace uploadFile
{
/// <summary>
/// Form2 的摘要说明。
/// </summary>
public class Form2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}

private void Page_Load(object sender, System.EventArgs e)
{
string Connstr="Data Source=localhost;
uid=sa;
pwd=;
Initial Catalog=Test";
SqlConnection myDSN = new SqlConnection(Connstr);
myDSN.Open();
//int imgid = int.Parse(Request.QueryString["id"]);
string sqlText = "SELECT img_name, img_data, img_contenttype FROM imagelist order by id";//where id="+imgid;
Trace.Write(sqlText);
SqlCommand MyCommand = new SqlCommand (sqlText, myDSN);
SqlDataReader dr =MyCommand.ExecuteReader();
while(dr.Read())
{
Response.ContentType = (dr["img_contenttype"].ToString());
Response.BinaryWrite((byte[])dr["img_data"]);
Response.Write("<br>");
}
myDSN.Close();
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
#endregion
}
}
 
to kevin.zhu:
我做得是asp,不会用asp.net.不过还是谢谢你了.
自己已经实现了上传功能了.有谁知道保存在服务器的文件(word,execl,html等类型的)
怎么回显在网页上.就是通过网页调用显示文件内容.是不是网页自己能自动的?
沉得好快啊
是不是我的问题,太低级了.
不过,还是帮帮我这个菜鸟吧!!!!!!!!!!!!!
 
直接显示文件的简单方法如下:
Response.ContentType="application/msword";
Response.WriteFile("c://test.doc");
就可以显示出work文件的内容哦
 
to kevin.zhu:
回显我已经找到方法了
但是好象对是中文名称的文件有点无奈,打不开!你有什么好方法吗?
谢谢你的关注!!
 
你试以下更改web页面的字符集
方法一:直接在输出前设置字符集Response.Charset="gb2312";
方法二:更改web.config中的encoding元素内容及requestEncoding元素内容为gb2312
 
问题全部解决了!
感谢两位的帮助,派分了!
 
后退
顶部