ashwani bakshi Ответов: 0

Изображение не отображается в представлении?


Уважаемый сэр/мадам
я использую редактор tinymce в своем представлении и сохраняю изображение с другим контентом, написанным в Редакторе.
проблема в том, что когда я показываю содержимое в поле зрения, то все содержимое отображается, оставляя изображение.

Вот мой код контроллера
public JsonResult upload()
       {
           var file = Request.Files["file"];
           //string extension = Path.GetExtension(file.FileName);
           //string fileid = Guid.NewGuid().ToString();
           //fileid = Path.ChangeExtension(fileid, extension);
           var filename1 = Path.GetFileName(file.FileName);
           string locationn = Server.MapPath(@"~/Uploads/img/" + filename1);
           file.SaveAs(locationn);
           //HttpPostedFileBase f1 = Request.Files["f1"];
           //var filename1 = Path.GetFileName(f1.FileName);
           //var p1 = Server.MapPath("~/contnt/images/" + filename1);
           //f1.SaveAs(p1);
           //var pic1 = Url.Content(Path.Combine("~/contnt/images/" + filename1));
           return Json(new {location= Url.Content(Path.Combine("~/Uploads/img/" + filename1))}, JsonRequestBehavior.AllowGet);
      }


это код вида
<div class="content table-responsive table-full-width">
    <link href="~/Scripts/Uploadify/uploadify.css" rel="stylesheet" />
    <script src="~/Scripts/UPLODIFY/jquery.uploadify.min.js" type="text/javascript"></script>
    <script src="~/Scripts/tinymce/tinymce.min.js"></script>
    <script>
tinymce.init({
selector: 'textarea',
height: 500,
theme: 'modern',
skin: "lightgray",
plugins: [
'advlist autolink lists link image charmap print preview hr anchor pagebreak',
'searchreplace wordcount visualblocks visualchars code fullscreen',
'insertdatetime media nonbreaking save table contextmenu directionality',
'emoticons template paste textcolor colorpicker textpattern imagetools'
],
toolbar1: 'insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | image',
toolbar2: 'print preview media | forecolor backcolor emoticons ',
    //image_advtab: true,
images_upload_url: '/Account/upload',
images_upload_credentials: true,
automatic_uploads: true
});
    </script>
    @*<script src="~/Scripts/jquery-1.10.2.js"> </script>
    <script type="text/javascript">
        $(function(){
            $("[name=filee]").on("change", function ()
            {
                var file=$(this).val()
                alert(file)
                $.ajax({
                    type: 'get',
                    url: '/Account/upload'
                    });
            });
        });
    </script>*@
               @using (Html.BeginForm("AddNews", "Account", FormMethod.Post,new { enctype = "multipart/form-data"}))
               {

                    <table class="table table-striped">
                      <tbody>
                            <tr><td>@Html.DropDownList("newstype",new SelectList(Enum.GetValues(typeof(newsportal.Models.newstype))),new {id="ntype"})</td></tr>
                            <tr><td>Date</td><td>@Html.TextBoxFor(Model => Model.datee, new { @type = "date",paceholder="select date"})</td></tr>
                            <tr><td>Country</td><td>@Html.TextBoxFor(Model => Model.country)</td></tr>
                            <tr><td>State</td><td>@Html.TextBoxFor(Model => Model.statee)</td></tr>
                            <tr><td>City</td><td>@Html.TextBoxFor(Model => Model.city)</td></tr>
          <tr><td>Category</td><td>@Html.DropDownListFor(Model=>Model.cat, new SelectList(Enum.GetValues(typeof(newsportal.Models.category))),"Select Category")</td></tr>
                            <tr><td>SubCategory</td><td>@Html.TextBoxFor(Model => Model.subcat)</td></tr>
                           <tr><td>URL Title(only for hindi news)</td><td>@Html.TextBoxFor(Model=>Model.urltitle)</td></tr>
                          <tr><td>Enter The News Youtube Url</td><td>@Html.TextBoxFor(Model=>Model.videourl)</td></tr>
                            <tr><td>Title</td><td>@Html.TextAreaFor(Model => Model.title)</td></tr>  
                           <tr><td>Content</td><td>@Html.TextAreaFor(Model => Model.content)</td></tr>
                            <tr><td>pic1</td><td><input name="f1" type="file" /></tr>
                            <tr><td>Writer</td><td>@Html.TextBoxFor(Model => Model.writ)</td></tr>
                            <tr><td><input type="submit" /></td></tr>
                      </tbody>
                     </table>
               }
</div>


это представление, в котором я отображаю содержимое

<pre>div class="content_bottom_left">
        <div class="single_page_area">
            <h2 class="">@ne.title</h2>
            <div class="single_page_content">
                <div class="post_commentbox"> <a href=@Url.Action("Home","News")>@ne.writ</a> <span>@ne.datee</span> <a href="#">@ne.cat</a> </div>
                <img class="img-center" src=@ne.pic1 alt="" style="height:430px;">
                @Html.Raw(ne.content)
            </div>


Что я уже пробовал:

я не пробовал ничего другого, кроме этого.

F-ES Sitecore

Вы не передаете файл в метод ajax и не обрабатываете результат, чтобы показать изображение на странице, поэтому я изо всех сил пытаюсь понять, почему вы думаете, что этот код когда-нибудь будет работать?

Здесь недостаточно контекста, чтобы кто-то действительно понял, что вы делаете, но я предлагаю вам найти рабочий пример загрузки файла с помощью tinymce и сравнить рабочее решение с тем, что вы делаете, чтобы понять, что не так.

[no name]

я не использую ajax. сценарий был прокомментирован в поле зрения(я думаю, что вы этого не видели).
images_upload_url: '/счета/загрузки',
как только я выберу изображение будет вызвана загрузка

F-ES Sitecore

Я нигде не вижу, чтобы ваш код загрузки назывался. Это одна из проблем с дампами кода, просто разместите соответствующие биты кода.

[no name]

Код загрузки вызывается, когда я загружаю файл с помощью опции загрузить изображение в tinymce.
отсюда вызывается код загрузки
images_upload_url: '/счета/загрузки',

Richard Deeming

Репост
Вы уже опубликовали этот вопрос:
https://www.codeproject.com/Questions/1235017/Unable-to-upload-image-in-tinymce-editor-in-MVC[^]

[no name]

можете ли вы ответить на этот вопрос решением

Richard Deeming

Я уже сделал это, и вы приняли это как решение!

[no name]

но изображение не было показано на странице, когда я извлекаю содержимое из базы данных.

Richard Deeming

Начните с удаления Path.Combine, которого не было в решении, которое я опубликовал.

Затем используйте опцию браузера "просмотр источника", чтобы просмотреть выводимые данные и убедиться, что был отрисован правильный URL-адрес изображения.

Затем откройте этот URL-адрес изображения в своем браузере и убедитесь, что изображение возвращено.

[no name]

src="../Uploads/img/23376174_607988482925308_7096673049508309679_n.jpg"

я получаю этот url-адрес, но изображение не отображается.
http://localhost:56919/Uploads/img/23376174_607988482925308_7096673049508309679_n.jpg

изображение показано на этом рисунке url.so что же мне теперь делать

Richard Deeming

Щелкните правой кнопкой мыши на изображении и выберите пункт "Проверить элемент". Посмотрите, есть ли какие-либо стили CSS, которые могли бы повлиять на отображение.

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

[no name]

я понял
src="../Uploads/img/23376174_607988482925308_7096673049508309679_n.jpg"

если я удалю " .. " эти точки, то изображение будет показано .
так как же я могу удалить его при отправке url.content с контроллера

Richard Deeming

Url.Content возвращает абсолютный путь; он не будет возвращать путь, начинающийся с "..".

[no name]

все еще получаю путь, начинающийся с этого".."

Richard Deeming

return Json(new { location = Url.Content("~/Uploads/" + filename1) }, JsonRequestBehavior.AllowGet);

Это не вернет пути, начинающиеся с "..".

Убедитесь, что вы правильно обновили свой код. Используйте инструменты разработчика Вашего браузера, чтобы проверить AJAX-запрос и проверить ответ.

0 Ответов