2009-10-26 2 views
0

Я реализую несколько SharePoint перечисляет, что требуется файл загрузить, помещая файл в каталоге списка под папку под названием /Lists/{ListName}/{RecordId}/filename.extSharepoint Файл FieldType

Как я могу достичь этого с помощью fieldType, он получает FileUpload WebControl для рендеринга, но я не получаю файл (FileUpload.HasFile всегда возвращает false) при проверке загрузки страницы для страницы. IsPostBack?

public class UploadControl : BaseFieldControl { 

    protected FileUpload fileupload; 

    protected override void CreateChildControls() 
    { 
     base.CreateChildControls(); 
     //FIX FOR PROBLEM 
     Page.Form.Enctype = "multipart/form-data"; 
     //FIX FOR PROBLEM 

     if (ControlMode == SPControlMode.Edit || ControlMode == SPControlMode.New || PreviousControlMode == SPControlMode.Edit) 
     { 
      fileupload = new FileUpload(); 
      fileupload.ID = "fileUpload"; 
      Controls.Add(fileupload); 
     } 
    } 

    protected override void OnLoad(EventArgs e) 
    { 
     base.OnLoad(e); 
     if (fileupload != null && Page.IsPostBack) 
      throw new Exception("Uploaded Has File " + fileupload.HasFile); 
      //Always Returns False 
    } 

    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     EnsureChildControls(); 
    } 

    public override object Value 
    { 
     get 
     { 
      EnsureChildControls(); 
      if (ControlMode == SPControlMode.New || ControlMode == SPControlMode.Edit) 
       return "FileName.EXT"; 
      return ""; 
     } 
     set 
     { 
      EnsureChildControls(); 
      var str = (String)value; 
     } 
    } 

} 

ответ

1

Я не совсем уверен в коде позади страницы SharePoint (не один удобный), но убедитесь, что тэг формы, как есть: атрибут

enctype='multipart/form-data' 

, как это требуется для загрузки файлов. Если это не так, вы всегда можете сделать

Form.Enctype = "multipart/form-data" 

во время метода ранней страницы. Кроме того, убедитесь, что загрузка не происходит асинхронно, например, в панели обновления, поскольку я не считаю, что это разрешено.

+0

Спасибо, что работали как удовольствие! (моя двухчасовая работа превратилась в 2 дня): D –

 Смежные вопросы

  • Нет связанных вопросов^_^