Как использовать ресайзер изображений asp.net с помощью JavaScript - PullRequest
0 голосов
/ 12 августа 2011

Я использую javascript / jquery, чтобы заполнить html веб-страницу.В IE работает нормально, но в Firefox или Chrome изображение не отображается там, где оно отображается, когда я нажимаю только на ссылку:

http://localhost:12240/ImageResize.aspx?imgsrc=images/test.jpg&width=100

С помощью JavaScript я создаю этот HTML-код:

<div class="item related-padding">
<div class="item-container item-0">
<div class="item-content" style="background:url(ImageResize.aspx?imgsrc=images/test.jpg&width=127) no-repeat;"></div>
<div class="item-type video"></div>
</div>
<div class="item-caption">Test</div>
</div>

Я считаю, что проблема в C #, заголовках ASP.NET

Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "image/jpg";
Random random = new Random();
int randomNumber = random.Next(1000000);
//Response.AddHeader("content-disposition", "attachment;filename=" + $randomNumber.ToString() + ".jpg");

/*resize happens here*/
bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

Response.Flush();
Response.End();

bmp.Dispose();
image.Dispose();

есть идеи?

Все, что я хочу, это изменить размер изображения и вывести его какJPG

Ответы [ 2 ]

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

В вашем вопросе отсутствуют детали, необходимые для точного ответа, но вот несколько советов, на которые вы можете посмотреть:

  • Относительные URI в CSS не всегда обрабатываются одинаково, проверьте с помощью FireBug или анализатором HTTP, получен ли правильный относительный URI. Раньше между IE и другими существовала разница, но я не уверен, что она все та же.

  • Скорее всего, ошибка в вашем JavaScript, который вы не показываете. Вы можете проверить это с помощью консоли javascript и / или распечатать результат в окне предупреждения или текстовом поле и отрисовать его вручную, посмотреть, что происходит (внимательно посмотрите на правильное экранирование).

  • Вы не используете сущность для амперсанда, хотя я не могу себе представить, что браузер позаботится об этом

  • Вы не выполняете Response.Clear(), который, если вы создаете ответ с помощью обычного запроса страницы, может создать урезанный поток ответов с заголовками и данными со страницы, которые вам там не нужны.

  • Протестируйте ваш код с обычным изображением в файле, посмотрите, сохраняется ли CSS (и, конечно, JavaScript). Протестируйте вывод JavaScript и CSS отдельно, чтобы убедиться, что вы нашли нужную виновную сторону (CSS, JS, серверная сторона C # или другое).

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

Добавьте вместо div с фоновым изображением.

...