загрузить возвращаемые значения - PullRequest
0 голосов
/ 22 августа 2011

я пытаюсь добиться того, чтобы:

1) Мне нужно загрузить картинку и отобразить картинку на той же странице.

2) Поэтому мне нужно вернутьИдентификатор изображения, сохраненного в функции для извлечения загруженного изображения (см. Раздел «Полный»)

заранее спасибо

Код загрузки:

   <script type="text/javascript">
   // <![CDATA[

   var userId = $('[id$=HiddenFieldUserID]').val();
   var childId = $('[id$=HiddenFieldChildID]').val();
   var ImageId = $('[id$=HiddenFieldImageID]').val();

   $(document).ready(function() {
   $('#fileInput').uploadify({
   'uploader': 'uploadify/uploadify.swf',
   'script': 'Upload.ashx',
   'cancelImg': 'uploadify/cancel.png',
   'scriptData': { 'userId': userId, 'humanId': humanId },
   'auto': true,
   'multi': false,
   'fileDesc': 'Image Files',
   'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg',
   'queueSizeLimit': 90,
   'sizeLimit': 4000000,
   'buttonText': 'Choose Images',
   'folder': '../img/pictures/',
   'onAllComplete': function(event, queueID, fileObj, response, data) {
    alert("Upload Successful")
    location.href("EditProfile.aspx?pictureid=")
   }

Upload.ashx.cs

public class Upload : IHttpHandler
{
    int userId = 0;
    int childId = 0;
    public void ProcessRequest(HttpContext Context)
    {
        userId = Convert.ToInt32(Context.Request["userid"]);
        childId = Convert.ToInt32(Context.Request["childId"]);
        try
        {
            HttpPostedFile file = Context.Request.Files["Filedata"];

            Global.myDBManager.ConnectionString = ConfigurationManager.ConnectionStrings["SaveAChildTodayConString"].ConnectionString;
            Global.myDBManager.DataProviderType = DBMgr.DataProvider.MySql;
            Global.myDBManager.Connect();
            int id = 1 + Convert.ToInt32(Global.myDBManager.ExecuteScalar("Select picture_id from picture order by picture_id desc limit 1"));
            Global.myDBManager.ExecuteScalar("Insert into picture(picture_id,profile_id) VALUE('" + id + "', '" + userId + "')");

            file.SaveAs("C:\\Users\\Amber\\Desktop\\" + id.ToString() + ".jpg");
            Context.Response.Write("1");
        }
        catch (Exception ex)
        {
            Context.Response.Write("0");
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 22 августа 2011

я не знаю, что такое .net. Вы используете несколько файлов в false, поэтому нет необходимости в функции onAllcomplete, а также неверны параметры, это для onComplete ...

var userId = $('[id$=HiddenFieldUserID]').val();
   var childId = $('[id$=HiddenFieldChildID]').val();
   var ImageId = $('[id$=HiddenFieldImageID]').val();

   $(document).ready(function() {
   $('#fileInput').uploadify({
   'uploader': 'uploadify/uploadify.swf',
   'script': 'Upload.ashx',
   'cancelImg': 'uploadify/cancel.png',
   'scriptData': { 'userId': userId, 'humanId': humanId },
   'auto': true,
   'multi': false,
   'fileDesc': 'Image Files',
   'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg',
   'queueSizeLimit': 90,
   'sizeLimit': 4000000,
   'buttonText': 'Choose Images',
   'folder': '../img/pictures/',
   'onComplete': function(event, queueID, fileObj, response, data) {
    alert(fileObj.filePath);
    location.href("EditProfile.aspx?pictureid=")
   }

сейчаспроверьте, что он предупреждает, вы получаете полный путь к файлу, если да, используйте это в атрибуте img src, JSON И последний идентификатор также решение, которое это быстро ..

0 голосов
/ 22 августа 2011

Поскольку новый идентификатор рассчитывается в коде cs, вы можете иметь один и тот же идентификатор для двух разных изображений.

Вам нужно иметь таблицу с автоматическим ключом, чтобы новый идентификатор былназначается на уровне базы данных (SQL очень хорош в обработке блокировок). Пусть вызов DB возвращает новый идентификатор.

...