Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[.net] Fileupload werkt niet

Pagina: 1
Acties:

  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 29-11 23:05

DNA_Saint

Go Go Gadget Ondertitel!

Topicstarter
Ik ben bezig met een asp.net C# website in visual studio.
Ik heb een detailsview die data uit database haalt en heb het nu gebruikt als een registratie formulier. Daar heb ik nu ook een file upload control erin gezet.

Ik heb daarna de tutorial gevolgd op de .net website:
http://www.asp.net/learn/data-access/tutorial-56-cs.aspx

Mijn code voor de fileupload:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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;
using System.Data.SqlClient;

public partial class registreren : System.Web.UI.Page
{
    

    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void DetailsView1_ItemInserting(object sender, DetailsViewPageEventArgs e)
    {
        
        // Reference the FileUpload controls
        FileUpload foto_upload = (FileUpload)DetailsView1.FindControl("foto_upload");
        if (foto_upload.HasFile)
        {
            // Make sure that a PDF has been uploaded
            if (string.Compare(System.IO.Path.GetExtension(foto_upload.FileName), ".jpg", true) != 0 &&
                string.Compare(System.IO.Path.GetExtension(foto_upload.FileName), ".jpeg", true) != 0)
            {
                /*UploadWarning.Text = "Alleen afbeeldingen zijn mogelijk.";
                UploadWarning.Visible = true;
                e.Cancel = true;
                return;
                 */
            }

            const string BrochureDirectory = "~/userphoto/";
            string brochurePath = BrochureDirectory + foto_upload.FileName;
            string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(foto_upload.FileName);

            int iteration = 1;

            while (System.IO.File.Exists(Server.MapPath(brochurePath)))
            {
                brochurePath = string.Concat(BrochureDirectory, fileNameWithoutExtension, "-", iteration, ".jpg");
                iteration++;
            }

            // Save the file to disk and set the value of the brochurePath parameter
            foto_upload.SaveAs(Server.MapPath(brochurePath));
            e.Values["foto_upload"] = brochurePath;
            
          
            
        }
    }
    public void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
    {
        if (e.Exception != null)
        {
            
            // Need to delete brochure file, if it exists
            if (e.Values["foto"] != null)
                System.IO.File.Delete(Server.MapPath(e.Values["foto"].ToString()));
        }
    }

    protected void DetailsView1_PageIndexChanging(object sender, DetailsViewPageEventArgs e)
    {
    }
}



Ik heb het wat aangepast enzo, maar nu krijg ik deze error:
'System.Web.UI.WebControls.DetailsViewPageEventArgs' does not contain a definition for 'Values'

En staat op regel:
C#:
1
2
3
            // Save the file to disk and set the value of the brochurePath parameter
            foto_upload.SaveAs(Server.MapPath(brochurePath));
            e.Values["foto_upload"] = brochurePath;


Ik snap dus niet wat ik fout doe, heb de tutorial gewoon gevolgd en zie in de source code ook geen verschil.

Huub Huub Barbatruc!


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 20-11 21:40

Not Pingu

Dumbass ex machina

Dat kan kloppen, want DetailsViewPageEventArgs heeft idd geen Values property.

Je roept hier e.Values aan binnen een eventhandler waarin e een object van type DetailsViewPageEventArgs is, terwijl in het tutorial de code binnen de volgende event handler staat:

C#:
1
2
3
4
5
6
protected void NewCategory_ItemInserting (object sender, DetailsViewInsertedEventArgs e) 
{
    // Save the file to disk and set the value of the brochurePath parameter  
    BrochureUpload.SaveAs(Server.MapPath(brochurePath)); 
    e.Values["brochurePath"] = brochurePath;
}


En DetailsViewInsertedEventArgs heeft wel een Values property.

[ Voor 13% gewijzigd door Not Pingu op 17-12-2007 09:22 ]

Certified smart block developer op de agile darkchain stack. PM voor info.