Ajax Le Guide Complete Pdf Printer

Download and open PDF file using Ajax. Concerning the answer given by Mayur Padshala this is the correct logic to download a pdf file via ajax but as others.

Active7 months ago

I am triggering a file upload on href click.
I am trying to block all extension except doc, docx and pdf.
I am not getting the correct alert value.

Javascript:

MyFiddle..its showing error

Topps Baseball Card Price Guide Complete Sets

Lii
7,6044 gold badges46 silver badges64 bronze badges
HIRA THAKURHIRA THAKUR
9,27114 gold badges42 silver badges70 bronze badges

8 Answers

Better to use change event on input field.

Updated source:

Updated jsFiddle.

antyratantyrat
24.6k9 gold badges59 silver badges71 bronze badges

You can use

whearat

  • application/pdf means .pdf
  • application/msword means .doc
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document means .docx
Printer

instead.

[EDIT] Be warned, .dot might match too.

SUB0DH
3,3872 gold badges23 silver badges44 bronze badges
Peter RaderPeter Rader
3,9967 gold badges37 silver badges81 bronze badges
Sonu SindhuSonu Sindhu
GanGan
3371 gold badge4 silver badges24 bronze badges
ipulipul

You can simply make it by REGEX:

Form:

And java script validation:

Cheers!

Adam KozlowskiAdam Kozlowski

For only acept files with extension doc and docx in the explorer window try this

Andres9619Andres9619
5377037
8,09412 gold badges32 silver badges64 bronze badges
satishsatish

Not the answer you're looking for? Browse other questions tagged javascriptjquery or ask your own question.

Active7 months ago

I have an action class that generates a PDF. The contentType is set appropriately.

I call this action through an Ajax call. I don't know the way to deliver this stream to browser. I tried a few things but nothing worked.

The above gives the error:

Your browser sent a request that this server could not understand.

Mike B.
5,53515 gold badges60 silver badges94 bronze badges
NaynNayn
1,6467 gold badges31 silver badges47 bronze badges

15 Answers

You don't necessarily need Ajax for this. Just an <a> link is enough if you set the content-disposition to attachment in the server side code. This way the parent page will just stay open, if that was your major concern (why would you unnecessarily have chosen Ajax for this otherwise?). Besides, there is no way to handle this nicely acynchronously. PDF is not character data. It's binary data. You can't do stuff like $(element).load(). You want to use completely new request for this. For that <a href='pdfservlet/filename.pdf'>pdf</a> is perfectly suitable.

To assist you more with the server side code, you'll need to tell more about the language used and post an excerpt of the code attempts.

BalusCBalusC
886k312 gold badges3256 silver badges3293 bronze badges

Babylock Needle Bar Thread Guide Complete Unit

Here is how I got this working

Updated answer using download.js

Mayur PadshalaMayur Padshala
1,4722 gold badges12 silver badges19 bronze badges

I don't really think that any of the past answers spotted out the problem of the original poster. They all presume a GET request while the poster was trying to POST data and get a download in response.

In the course of searching for any better answer we found this jQuery Plugin for Requesting Ajax-like File Downloads.

In its 'heart' it creates a 'temporary' HTML form containing the given data as input fields. This form is appended to the document and posted to the desired URL. Right after that the form is removed again:

Update Mayur's answer looks pretty promising and very simple in comparison to the jQuery plug-in I referred to.

chiccodorochiccodoro
10.3k14 gold badges81 silver badges126 bronze badges

This is how i solve this issue.
The answer of Jonathan Amend on this post helped me a lot.
The example below is simplified.

For more details, the above source code is able to download a file using a JQuery Ajax request (GET, POST, PUT etc). It, also, helps to upload parameters as JSON and to change the content type to application/json (my default).

The html source:

A simple form with two input text, one select and a button element.

The javascript page source:

A simple event on button click. It creates an AjaxDownloadFile object. The AjaxDownloadFile class source is below.

The AjaxDownloadFile class source:

I created this class to added to my JS library. It is reusable. Hope that helps.

Community
George SiggouroglouGeorge Siggouroglou
8,5976 gold badges64 silver badges65 bronze badges

What worked for me is the following code, as the server function is retrieving File(memoryStream.GetBuffer(), 'application/pdf', 'fileName.pdf');:

ParParParPar
5,1877 gold badges36 silver badges50 bronze badges

You could use this plugin which creates a form, and submits it, then removes it from the page.

This worked for me. Found this plugin here

George Siggouroglou
8,5976 gold badges64 silver badges65 bronze badges
Ijas AmeenudeenIjas Ameenudeen

Mortal Kombat X Krypt Guide Complete

7,2473 gold badges31 silver badges48 bronze badges

To fix the blank PDF issue in post request to get stream data like PDF, we need to add response type as 'arraybuffer' or 'blob' in request

NinjaNinja

create a hidden iframe, then in your ajax code above:

url:document.getElementById('myiframeid').src = your_server_side_url,

and remove the window.open(response);

JMax
21.4k10 gold badges58 silver badges85 bronze badges
qalhatqalhat

This snippet is for angular js users which will face the same problem, Note that the response file is downloaded using a programmed click event.In this case , the headers were sent by server containing filename and content/type.

Gihan SandaruGihan Sandaru
MemZMemZ

Do you have to do it with Ajax? Coouldn't it be a possibility to load it in an iframe?

Emil VikströmEmil Vikström
76.6k13 gold badges115 silver badges154 bronze badges

Concerning the answer given by Mayur Padshala this is the correct logic to download a pdf file via ajax but as others report in the comments this solution is indeed downloads a blank pdf.

The reason for this is explained in the accepted answer of this question: jQuery has some issues loading binary data using AJAX requests, as it does not yet implement some HTML5 XHR v2 capabilities, see this enhancement request and this discussion.

So using HTMLHTTPRequest the code should look like this:

VpantVpant

Student Guide Complete Sentences

Hope this will save you a few hours and spare you from a headache.It took me a while to figure this out, but doing regular $.ajax() request ruined my PDF file, while requesting it through address bar worked perfectly.Solution was this:

Include download.js: http://danml.com/download.html

Then use XMLHttpRequest instead of $.ajax() request.

Jurijs KastanovsJurijs Kastanovs
4451 gold badge11 silver badges28 bronze badges
Nathan Tuggy
2,2049 gold badges25 silver badges35 bronze badges
POGSNETPOGSNET
Columbo episode guide complete program

If you have to work with file-stream (so no physically saved PDF) like we do and you want to download the PDF without page-reload, the following function works for us:

HTML

Javascript

Perfect World Quest Guide Complete

Due to the target='pdf-download-output', the response is written into the iframe and therefore no page reload is executed, but the pdf-response-stream is output in the browser as a download.

George MaharisGeorge Maharis

Not the answer you're looking for? Browse other questions tagged javascriptjavajquerypdf or ask your own question.