Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Inside

Upload

Recommended Posts

Caros amigos,

 

 

não entendo nada de ASP.Net mas estou precisando de um sistema de upload que envie multiplos arquivos através de um input apenas como no Orkut. Já achei vários códigos, mas todos usam DLL e meu server não deixa usar isso.

 

 

Queria também entender um pouco mais de ASP.Net, coloquei para rodar um script que achei mas não roda. Alguém sabe me dizer qual é o erro:

 

 

Aqui você pode ver o erro.

 

 

Ai vai o código

 

multipleuploads.aspx:

 

<%@ Page language="c#" Codebehind="multipleuploads.aspx.cs" AutoEventWireup="false" Inherits="webchange.attachme" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
	<HEAD>
		<title>attachme</title>
		<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
		<meta content="C#" name="CODE_LANGUAGE">
		<meta content="JavaScript" name="vs_defaultClientScript">
		<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
	</HEAD>
	<body MS_POSITIONING="GridLayout">
		<form id="attachme" method="post" encType="multipart/form-data" runat="server">
			<INPUT class="bluebutton" id="FindFile" style="Z-INDEX: 101; LEFT: 36px; WIDTH: 274px; POSITION: absolute; TOP: 123px; HEIGHT: 22px" type="file" size="26" runat="server">
			<asp:listbox id="ListBox1" style="Z-INDEX: 102; LEFT: 36px; POSITION: absolute; TOP: 149px" runat="server" CssClass="txtbox" Height="100px" Width="274px" Font-Size="XX-Small"></asp:listbox>
			<asp:button id="AddFile" style="Z-INDEX: 103; LEFT: 34px; POSITION: absolute; TOP: 254px" runat="server" CssClass="bluebutton" Height="23px" Width="72px" Text="Add"></asp:button>
			<asp:button id="RemvFile" style="Z-INDEX: 104; LEFT: 119px; POSITION: absolute; TOP: 255px" runat="server" CssClass="bluebutton" Height="23px" Width="72px" Text="Remove"></asp:button>
			<INPUT class="bluebutton" id="Upload" style="Z-INDEX: 105; LEFT: 236px; WIDTH: 71px; POSITION: absolute; TOP: 254px; HEIGHT: 24px" type="submit" value="Upload" runat="server" onserverclick="Upload_ServerClick">
		</form>
		<asp:label id="Label1" style="Z-INDEX: 106; LEFT: 46px; POSITION: absolute; TOP: 326px" runat="server" Height="25px" Width="249px"></asp:label></SPAN>
	</body>
</HTML>

 

multipleuploads.aspx.cs:

 

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.Xml;


namespace webchange
{
	/// <summary>
	/// attachme allows for multiple files to be uploaded to your web server while using only
	/// one HttpInputFile control and a listbox.
	/// </summary>
	public class attachme : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.ListBox ListBox1;
		protected System.Web.UI.WebControls.Button AddFile;
		protected System.Web.UI.WebControls.Button RemvFile;
		protected System.Web.UI.HtmlControls.HtmlInputFile FindFile;
		protected System.Web.UI.HtmlControls.HtmlInputButton Upload;
		protected System.Web.UI.WebControls.Label Label1;
		public ArrayList files = new ArrayList();
		static public ArrayList hif = new ArrayList();
		public int filesUploaded = 0;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// Put user code to initialize the page here
		
		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{	
			this.AddFile.Click += new System.EventHandler(this.AddFile_Click);
			this.RemvFile.Click += new System.EventHandler(this.RemvFile_Click);
			this.Upload.ServerClick += new System.EventHandler(this.Upload_ServerClick);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		/// <summary>
		/// AddFile will add the path of the client side file that is currently in the PostedFile
		/// property of the HttpInputFile control to the listbox.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void AddFile_Click(object sender, System.EventArgs e)
		{
			if (Page.IsPostBack == true)
			{
				hif.Add(FindFile);
				ListBox1.Items.Add(FindFile.PostedFile.FileName);
				
			}
			else
			{
				
			}
		}

		/// <summary>
		/// RemvFile will remove the currently selected file from the listbox.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void RemvFile_Click(object sender, System.EventArgs e)
		{
			if(ListBox1.Items.Count != 0)
			{
				
				hif.RemoveAt(ListBox1.SelectedIndex);
				ListBox1.Items.Remove(ListBox1.SelectedItem.Text);
			}
		
		}

		/// <summary>
		/// Upload_ServerClick is the server side script that will upload the files to the web server
		/// by looping through the files in the listbox.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		public void Upload_ServerClick(object sender, System.EventArgs e)
		{
			string baseLocation = "e:\\home\\insideinternet11\\web\\sites\\upload4\\asp.net\\";
			string status = "";
			
			
			if((ListBox1.Items.Count == 0) && (filesUploaded == 0))
			{
				Label1.Text = "Error - a file name must be specified.";
				return;

			}
			else
			{
				foreach(System.Web.UI.HtmlControls.HtmlInputFile HIF in hif)
				{
					try
					{
						string fn = System.IO.Path.GetFileName(HIF.PostedFile.FileName);
						HIF.PostedFile.SaveAs(baseLocation + fn);
						filesUploaded++;
						status += fn + "<br>";
					}
					catch(Exception err)
					{
						Label1.Text = "Error saving file " + baseLocation +  "<br>" + err.ToString();
					}
				}

				if(filesUploaded == hif.Count)
				{
					Label1.Text = "These " +  filesUploaded + " file(s) were uploaded:<br>" + status;
				}
				hif.Clear();
				ListBox1.Items.Clear();
			}
											
		}

	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro quintelab

 

Não sei o que quer dizer usar o Publish? Eu apenas peguei os dois arquivos e joguei no server com um programa de FTP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é assim que funciona. Tem que usar algum software para compilar seu código ver se tem algum erro de sintaxe primeiro. Se tiver tudo OK jogar no server, o Visual Studio tem a opção Publish que gera os arquivos que devem ir pro servidor.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.