Разрешить пользователю добавлять картинку на сайт - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть существующий веб-сайт, который позволяет пользователю (обычно мне) загружать изображения, а затем отображать изображение на соответствующей странице.Сейчас я пытаюсь добавить эту функцию на новый веб-сайт.

В Visual Studio я открыл новый веб-сайт и сделал «добавить существующий элемент», чтобы скопировать модель / представление / контроллер со старого веб-сайта.,Внесены некоторые изменения, чтобы удалить ненужные функции из кода и некоторые другие мелочи.В обоих я храню изображение в папке с именем / data / Images.Когда я выполняю код для нового сайта (Lat34North) и добавляю изображение, изображение добавляется, и все, кажется, работает (без ошибок).

Проблема:

  1. Если я посмотрю на папку (новое решение) с помощью «Проводника», jpg появится, в данном случае, на моем жестком диске и вправильная папка.

  2. Если я попытаюсь получить доступ к папке (~ / Data / Images) через Visual Studio, jpg не отображается.

  3. Когда я пытаюсь отобразить изображение с веб-сайта, я просто получаю забавный маленький значок, который вы получаете, когда изображение не найдено.

Photo Controller

//

    [Authorize]
    public ActionResult PhotoCreate(string CallingState, string masterMarkerID, string markerTitle)
    {
        ViewBag.photoCallingState = CallingState;
        ViewBag.photoMarkerID = masterMarkerID;
        ViewBag.photomarkerTitle = markerTitle;
        return View();
    }


    //
    // POST: /Photo/Create

    [AcceptVerbs(HttpVerbs.Post)]
    [Authorize]

    public ActionResult PhotoCreate(Photo photo, HttpPostedFileBase file)
    {

        if (ModelState.IsValid)
        {

            photo.PhotoLinkRecID = photo.savePhotoState + photo.saveMarkerID;
            if (photo.PhotoSequence == 0)
            {


                var no_Photo = from s in db.Photo
                               where s.PhotoLinkRecID == photo.PhotoLinkRecID
                               select s;
                int noPhoto = no_Photo.Count();
                int Sequence = (noPhoto * 20);
                photo.PhotoSequence = Sequence;
            }

            photo.PhotoDateCreated = DateTime.Now;
            photo.PhotoCreatedBy = @User.Identity.Name;

            if (photo.fileUpload != null && photo.fileUpload.ContentLength > 0)
            {


                // get the file extension

                photo.PhotoLinkRecID = photo.savePhotoState + photo.saveMarkerID; // Create key to link photo to the approiate marker -- // unique record identifier
                photo.PhotoState = photo.savePhotoState;
                photo.PhotoMarkerID = photo.saveMarkerID;

                var fileName = Path.GetFileName(photo.fileUpload.FileName);
                var FileExtension = fileName.Substring(fileName.LastIndexOf('.') + 1).ToLower();
                photo.PhotoFileType = FileExtension;
                db.Photo.Add(photo);  // add new photo record to the DB
                db.SaveChanges();



                photo.PhotoRecID = "Photo" + photo.PhotoID.ToString(); // unique record identifier


                var saveFile = photo.savePhotoState + photo.PhotoRecID + "." + photo.PhotoFileType;           // new file name
                var path = Path.Combine(Server.MapPath("~/Data/Images"), saveFile);     // save the file

                HttpPostedFileBase hpf = photo.fileUpload as HttpPostedFileBase;
                hpf.SaveAs(path);

                Image image = Image.FromFile(path);
                photo.PhotoHeight = image.Height;
                photo.PhotoWidth = image.Width;
                try
                {

                    //get the date taken from the files metadata
                    PropertyItem pi = image.GetPropertyItem(0x9003);
                    string sdate = Encoding.UTF8.GetString(pi.Value).Replace("\0", String.Empty).Trim();
                    string secondhalf = sdate.Substring(sdate.IndexOf(" "), (sdate.Length - sdate.IndexOf(" ")));
                    string firsthalf = sdate.Substring(0, 10);
                    firsthalf = firsthalf.Replace(":", "/");
                    sdate = firsthalf + secondhalf;

                    photo.PhotoDateTaken = sdate;
                }
            catch { }


            try
            {

                double? lat = ImageExtensions.GetLatitude(image);
                double? lon = ImageExtensions.GetLongitude(image);

                if (lat > 1)
                {
                    photo.PhotoLatDirection = "N";
                    string latString = lat.ToString();
                    //photo.PhotoLat = latString.Substring(0, 10);
                    if (latString.Length < 10)
                    {
                        photo.PhotoLat = latString;
                    }
                    else
                    {
                        photo.PhotoLat = latString.Substring(0, 10);
                    }

                    //photo.PhotoLat  = lat.ToString();
                    photo.PhotoLongDirection = "W";
                    string longString = lon.ToString();
                    if (longString.Length < 10)
                    {
                        photo.PhotoLong = longString;
                    }
                    else
                    {
                        photo.PhotoLong = longString.Substring(0, 10);
                    }


                    //photo.PhotoLong = lon.ToString();
                }


            }
            catch { }



            }   
                db.SaveChanges();
                return RedirectToAction("PhotoEdit", new { id=photo.PhotoID });  
        }

            return View(photo);
  • Старый веб-сайт использует EntityFramework, Версия = 5.0.0.0
  • Новый веб-сайт использует EntityFramework, Версия = 6.0.0.0

Другое различие между этими двумя пакетами, которые я установил.Могу я пропустить один?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...