Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

170
Views
Administrar ediciones en FileUpload Control

Tengo una página de producto. Quiero agregar mi producto a mi base de datos y también quiero actualizar mi producto. Tengo un problema con las imágenes. Cuando inserto el producto, todo está bien. En mi página aspx tengo este código:

 <span> <asp:FileUpload ID="files" runat="server" AllowMultiple="true" /> </span> <div runat="server" id="previewImages"></div>

y cuando guardo mi producto, en el código detrás tengo este código:

 string filenm = string.Empty; HttpFileCollection fileCollection = Request.Files; for (int i = 0; i < fileCollection.Count; i++) { HttpPostedFile uploadfile = fileCollection[i]; if (uploadfile.ContentLength > 0) { string filename = uploadfile.FileName; System.IO.Directory.CreateDirectory(Server.MapPath("immScarpe/" + txtStyle.Text)); file.SaveAs(Server.MapPath("immScarpe/" + txtStyle.Text + "/") + fileName); //this is pseudo-code INSERT INTO PRODUCT_IMM (IdProduct, Path) VALUES (Id, "immScarpe/" + txtStyle.Text + "/" + fileName) } }

Ahora, el problema es que puedo EDITAR el producto guardado. Cuando hago clic en el botón de edición de un producto, tengo que cargar todos sus datos y dejar que el usuario los modifique. También las imágenes.

la pregunta principal es: ¿Cómo puedo cargar las imágenes guardadas en asp:FileUpload control?

Otra cosa que me gustaría hacer es mostrar vistas previas de imágenes... en inserción y en edición.

Un ejemplo de lo que quiero hacer es lo que hace Amazon. ingrese la descripción de la imagen aquí

pero, si es posible con solo un FileUpload con AllowMultiple = true

Estoy dispuesto a usar otras tecnologías como javascript, jquery y Ajax si es necesario.

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Mostrar vista previa de imágenes - Insertar

 <script src="jquery-1.10.1.min.js" type="text/javascript"></script> <script type="text/javascript"> function ShowpImagePreview(input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { $('#previewImage').attr('src', e.target.result); } reader.readAsDataURL(input.files[0]); } } </script> <asp:Image ID="previewImage" runat="server" /> <asp:FileUpload ID="FileUpload1" runat="server" onchange="ShowpImagePreview(this);" />
about 4 years ago · Santiago Trujillo Report

0

Aquí hay un ejemplo muy básico de cómo puede manejar las imágenes después de haberlas enviado al servidor. En este fragmento, el nombre de archivo de la imagen está fijo, pero debería ser suficiente para impulsarlo en la dirección correcta.

 protected void Page_Load(object sender, EventArgs e) { //check if the file exists and show if (File.Exists(Server.MapPath("testImage.jpg"))) { setImage("/testImage.jpg"); } } //upload a new image protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { try { FileUpload1.SaveAs(Server.MapPath("testImage.jpg")); setImage("/testImage.jpg"); } catch { //error writing file } } } //delete the image protected void LinkButton1_Click(object sender, EventArgs e) { try { File.Delete(Server.MapPath("testImage.jpg")); LinkButton1.Visible = false; Image1.Visible = false; } catch { //error deleteing file } } //set the image and show the delete link private void setImage(string image) { Image1.ImageUrl = "/testImage.jpg"; Image1.Visible = true; LinkButton1.Visible = true; }

ASPX

 <asp:Image ID="Image1" runat="server" Visible="false" /> <br /> <asp:LinkButton ID="LinkButton1" runat="server" Visible="false" OnClick="LinkButton1_Click">Delete image</asp:LinkButton> <br /> <br /> <asp:FileUpload ID="FileUpload1" runat="server" /> <br /> <asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" />
about 4 years ago · Santiago Trujillo Report

0

Para mostrar imágenes en GridView desde el disco

https://www.aspsnippets.com/Articles/Display-Images-in-GridView-Control-using-the-path-stored-in-SQL-Server-database.aspx

Ahora que tiene las imágenes que se muestran, desea tener alguna funcionalidad de reemplazo o eliminación en las imágenes. Debe convertir su campo en GridView para imagen en campo de plantilla. Puede hacer esto haciendo clic en la vista de origen de su página ASPX y reemplazando su ImageField o BoundField (cualquier campo que haya usado para mostrar la imagen).

Vea el diseño de GridView en la pregunta:

¿Cómo mostrar la imagen dentro del campo de plantilla de gridview sin usar la clase de controlador?

La forma de vincular la fuente de la imagen está en las respuestas de esa pregunta.

Para tener una funcionalidad de eliminación o reemplazo, puede incluir un control LinkButton dentro de su TemplateField debajo de la etiqueta que muestra la imagen.

Puede establecer la propiedad CommandName de LinkButton en 'Eliminar' o 'Reemplazar' y luego, en su archivo .vb o .cs, busque el evento 'RowCommand' para su GridView.

Es algo así como (solo pseudocódigo)

 Protected Sub GridView_RowCommand(ByVal sender As Object, ByVal e As System.GridViewCommandEventArgs) Handles GridView.RowCommand If e.CommandName = 'Delete' Then 'Place your delete query for your image record on the database here.. 'Place your delete file from disk code here.. End If End Sub

Más información sobre el evento GridView RowCommand

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand(v=vs.110).aspx

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!