Загрузить в базу данных - PullRequest
2 голосов
/ 27 июля 2010

У меня есть элемент управления asp.net FileUpload, ниже приведен код (который отлично работает)

 if (fUpload.HasFile)   
 {        
    string contentType = fUpload.PostedFile.ContentType;        
    string fileName = fUpload.PostedFile.FileName;       
    byte[] byteArray = fUpload.FileBytes;  
    ........         
 }

, но я думаю об использовании плагина JQuery Uploadify
как бы вы конвертировали вышеуказанный код в Uploadify ?, я застрял здесь

byte[] byteArray = fUpload.FileBytes;   // i dont find "FileBytes"

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Если вы работаете за CMS или у вас все еще есть проблемы, убедитесь, что вы разрешаете путь к местоположению в файле web.config, как показано ниже.

0 голосов
/ 27 июля 2010

Итак, если вы используете элемент управления uploadify, у вас должно быть что-то в вашей разметке, например:

<script type="text/javascript">
       // <![CDATA[
       var id = "55";
       var theString = "asdf";
       $(document).ready(function() {
       $('#fileInput').uploadify({
       'uploader': 'uploadify/uploadify.swf',
       'script': 'Upload.ashx',
       'scriptData': { 'id': id, 'foo': theString},
       'cancelImg': 'uploadify/cancel.png',
       'auto': true,
       'multi': true,
       'fileDesc': 'Image Files',
       'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg',
       'queueSizeLimit': 90,
       'sizeLimit': 4000000,
       'buttonText': 'Choose Images',
       'folder': '/uploads',
       'onAllComplete': function(event, queueID, fileObj, response, data) {

       }
     });
   });
   // ]]></script>

   <input id="fileInput" name="fileInput" type="file" />

Затем вы хотите иметь Generic Handler, который представляет собой файл Ashx.Что происходит, так это то, что этот обработчик вызывается, когда элемент управления uploadify хочет загрузить один из файлов в очереди, которую он имеет.Откройте VS -> щелкните правой кнопкой мыши по вашему проекту -> Добавить новый -> Выберите общий обработчик -> Назовите его как-то как Upload.ashx.

Возьмите этот файл и поместите в него что-то похожее на это:

public class Upload : IHttpHandler, IRequiresSessionState
{

    public void ProcessRequest(HttpContext context)
    {
        try
        {
            HttpPostedFile file= context.Request.Files["Filedata"];

            int id = (Int32.Parse(context.Request["id"]));
            string foo = context.Request["foo"];
            file.SaveAs("C:\\" + id.ToString() + foo + file.FileName);

            context.Response.Write("1");
        }
        catch(Exception ex)
        {
            context.Response.Write("0");
        }
    }
}

Он поставляется по умолчанию с IsReusable () ... НЕ УДАЛЯЙТЕ ЭТО.Это необходимо, просто оставьте это там, или вы получите странную ошибку.

Кроме того, вы можете посмотреть это шаг за шагом здесь: http://casonclagg.com/articles/6/video-tutorial-uploadify-asp-net-c-sharp.aspx

РЕДАКТИРОВАТЬ

Я думаю, вы хотите сделать это, где файл является объектом HttpPostedFile:

BinaryReader b = new BinaryReader(file.InputStream);
byte[] binaryData = b.ReadBytes(file.InputStream.Length);
...