簡體   English   中英

在按鈕上單擊asp上傳文件

[英]Upload a file on Button click in asp

我正在使用WinCE OS開發經典ASP。 我想從WinCE上傳文件並保存到本地計算機中。 請分享用於文件上傳的必要JScript函數,我可以將其放在包含文件中。 謝謝。

更好的方法是使用任何JavaScript庫。

這是文件上傳示例。

http://pixelcone.com/jquery/ajax-file-upload-script/

如何異步上傳文件?

干杯:)

我沒有有關asp classic的信息,但我使用過Asp.net,您可以使用asp接收文件,以便從wince上載文件,可以使用c#開發應用程序,這是一個示例。

它的客戶端WinCE應用程序代碼功能Upload(string Path,String FileName)將File Path和File Name作為輸入並將其發布到網頁

#region Upload
public bool Upload(string FilePath, string FileName)
{
string Url = "HTTP://test.mtsonweb.com/fileupload.ashx"; //  Change it to your page name
string BytesConfirmedReceived = "";
int BytesSent = 0;
bool Ret = false;
ASCIIEncoding encoding = new ASCIIEncoding();
try
{

if (File.Exists(FilePath +"\\"+ FileName) == false) { return true; }

//FileInfo oInfo = new FileInfo(FilePath + "\\" + FileName);
//BytesSent = Convert.ToInt32(oInfo.Length.ToString());

Url += "?myfile=" + FileName.Trim();

FileStream fr = new FileStream(FilePath + "\\" + FileName, FileMode.Open);

BinaryReader r = new BinaryReader(fr);
byte[] FileContents = r.ReadBytes((int)fr.Length);
BytesSent = FileContents.Length;

r.Close();
fr.Close();

WebRequest oRequest = WebRequest.Create(Url);

oRequest.Method = "POST";

oRequest.Timeout = 15000;

oRequest.ContentLength = FileContents.Length;

Stream oStream = oRequest.GetRequestStream();

BinaryWriter oWriter = new BinaryWriter(oStream);

oWriter.Write(FileContents);

oWriter.Close();

oStream.Close();

WebResponse oResponse = oRequest.GetResponse();
BytesConfirmedReceived = new StreamReader(oResponse.GetResponseStream(),
Encoding.Default).ReadToEnd();

oResponse.Close();

if (BytesSent.ToString() == BytesConfirmedReceived.Trim())
{
Ret = true;
}

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return Ret;

}
#endregion

現在,您可以在頁面的任意位置處理使用腳本上傳的文件,我使用asp.net和c#作為后端,以下是頁面的來源:

<%@ WebHandler Language="C#" Class="FileUpload" %>
using System;
using System.Xml;
using System.Data;
using System.Web;
using System.IO;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;

public class FileUpload : IHttpHandler
{
public void ProcessRequest(HttpContext oContext)
{

int BytesSent = 0;
//string LocalPath = @"C:\Inetpub\wwwroot\";

string MyFile = "";


try
{

MyFile = oContext.Request["myfile"].ToString().Trim();
MyFile = HttpContext.Current.Server.MapPath("~/Demo/Files/" +

ASCIIEncoding encoding = new ASCIIEncoding();

BytesSent = oContext.Request.TotalBytes;

Class1 obj = Class1.GetInstance();

obj.FileName = MyFile;
obj.FileLength = BytesSent;

byte[] InComingBinaryArray =
oContext.Request.BinaryRead(oContext.Request.TotalBytes);
obj.Data = InComingBinaryArray;

if (File.Exists(MyFile) == true)
{
File.Delete(MyFile);
}

FileStream fs = new FileStream(MyFile, FileMode.CreateNew);
BinaryWriter w = new BinaryWriter(fs);
w.Write(InComingBinaryArray);
w.Close();
fs.Close();

FileInfo oInfo = new FileInfo(MyFile);
long a = (long)BytesSent;

oContext.Response.Write(oInfo.Length.ToString());

}
catch (Exception err) { oContext.Response.Write(err.Message); }

}

public bool IsReusable { get { return true; } }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM