Bonjour,
J'ai voulu me faire un controle personnalise pour gerer l'upload d'un fichier sans recharger toute la page.
Lorsque je mets mon code dans une page normale, seule, pas en tant que controle, l'upload fonctionne.
Mais des que j'ai mis ce code dans un controle, et que j'appelle le controle sur une page il ne fonctionne plus, le FileUpload.HasFile est toujours faux... savez-vous pourquoi ?
Voici mon controle :
La verification javascript est bien declenche quand j'entre rien dans le champ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UploadOneFile.ascx.cs" Inherits="TEST.Controls.UploadOneFile" %> <%-- Validators and Validation Summaries used in the page --%> <asp:ValidationSummary ID="ValidationSummaryAdd" runat="server" ValidationGroup="AddValidation" DisplayMode="BulletList" ShowMessageBox="true" ShowSummary="false" /> <%-- Required Fields --%> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Browse a file please" ControlToValidate="FileUpload1" Display="None" ValidationGroup="AddValidation" SetFocusOnError="true"></asp:RequiredFieldValidator> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="btnUpload" runat="server" CausesValidation="true" ValidationGroup="AddValidation" OnClick="btnUpload_Click" Text="Upload File" />
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public partial class UploadOneFile : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } protected void btnUpload_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) // Ne passe jamais dedans! TOUJOURS FALSE { string contentType = FileUpload1.PostedFile.ContentType; // Get the bytes from the uploaded file byte[] fileData = new byte[FileUpload1.PostedFile.InputStream.Length]; FileUpload1.PostedFile.InputStream.Read(fileData, 0, fileData.Length); // Get the name without folder information from the uploaded file. string originalName = Path.GetFileName(FileUpload1.PostedFile.FileName); // Create a new instance of the File class based on the uploaded file. FileManager.File myFile = new FileManager.File(contentType, originalName, fileData); // Save the file, and tell the Save method what data store to use. switch (FileManager.AppConfiguration.DataStoreType) { case FileManager.DataStoreType.Database: myFile.Save(); break; case FileManager.DataStoreType.FileSystem: myFile.Save(Server.MapPath(Path.Combine(FileManager.AppConfiguration.UploadsFolder, myFile.FileUrl))); break; } } } }
Merci
++
Partager