У меня есть ссылка, на которую пользователь нажимает для получения PDF. В jQuery я создаю POST ajax, звонят на сервер для получения PDF. PDF Прибывает ко мне с корректными заголовками содержания и т.д., которые обычно заставляли бы браузер открывать плагин Читателя или позволяли бы пользователю сохранять PDF.
Так как я получаю PDF w/вызов ajax, я не уверен, что сделать с данными, что я вхожу в обратный вызов OnSuccess. Как я могу дать данные, которые я получаю к браузеру и позволяю ему делать свою вещь по умолчанию с ответом PDF?
Проверьте это . Идея состоит в том, что вы получаете список атрибутов сборки с помощью Assembly.GetCustomAttributes ()
и ищете DebuggableAttribute
, а затем находите, имеет ли такой атрибут набор свойств IsJITTrackingEnabled
.
public bool IsAssemblyDebugBuild(Assembly assembly)
{
return assembly.GetCustomAttributes(false).OfType<DebuggableAttribute>().Any(da => da.IsJITTrackingEnabled);
}
-121--1175440- import os
import fnmatch
def recursive_glob(treeroot, pattern):
results = []
for base, dirs, files in os.walk(treeroot):
goodfiles = fnmatch.filter(files, pattern)
results.extend(os.path.join(base, f) for f in goodfiles)
return results
fnmatch
дает вам точно такие же узоры, как glob
, так что это действительно отличная замена glob.glob
с очень близкой семантикой. Итеративная версия (например, генератор), IOW замена glob.iglob
, является тривиальной адаптацией (просто дать
промежуточные результаты по мере вашего продвижения, а не расширить
расширить один результат перечислять, чтобы вернуться в конце).
jQuery вообще не нужен. Просто отправьте сообщение POST через форму, как правило, и на стороне сервера добавьте заголовок HTTP
Content-Disposition: attachment; filename="whatever.pdf"
Браузер будет выполнять свои действия по умолчанию.
Кроме того, если вы хотите быть более внимательными к сообщениям об ошибках, которые могут возникнуть во время создания PDF, вы можете сделать это. Отправьте параметры на сервер с помощью jQuery. На сервере создайте двоичное содержимое и кэшируйте его где-нибудь в течение нескольких минут, доступное через ключ, который вы положили в сеанс пользователя, и верните ответ Ajax «success» на вашу страницу (или если произошла ошибка, верните ответ «error»). Если страница получает отклик на успешный запрос, она может немедленно выполнить следующее действие:
window.location = "/get/my/pdf";
Сервер возвращает кэшированное содержимое PDF. Обязательно включите заголовок Content-Disposition, как описано выше.
Взгляните на - Плагин jQuery для запроса загрузки файлов в стиле Ajax
Весь плагин
- это всего около 30 строк кода (включая комментарии).
Вызов очень похож на вызов jquery ajax.
$.download('/export.php','filename=myPDF&format=pdf&content=' + pdfData );
Конечно, вы должны установить заголовки content-type и Content-Disposition на стороне сервера, как и для любой такой загрузки.
В java я бы сделал что-то вроде этого
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename="exported.pdf");