i have tried to explain this in a helpful clean way but it is quite long, so get snacks before starting ( id recommend jelly babies for that energy burst), ive tried to break the problem down into: desired outcome, what i have, where i think the solution lies, what i need help with.
My language: Before i start when i mention the variable 'doctype' i mean a category in which you might class a document by, e.g. user manual.
When i mention filename/filetype i mean the type of file it is e.g. '.pdf'. or the filename: 'python.pdf.'
Just dodging that question before it is asked :P.
Desired outcome:
Files are to be uploaded to a sqlalchemy database table. What I would like is for a user to be able to upload multiple files at 'the same time,'(loosely as i dont think the same time is strictly possible, more like one at a time but selecting multiple from the file input.) Linking variables, product_serial_number and doctype to the file in columns on the same row as the file.
So sql table would look something like:
filename data product_serial_number doctype
What i have so far:
Currently i have the html which will all multiple file selection:
What needs to happen:
User clicks upload button and selects ( lets say 10) pdfs to upload.
I would like my website to select the first pdf of the list, ask the user to input a doctype and product_serial_number , then query the information and upload to table. Then select pdf 2 from the list and ask the user to input doctype and product_serial_number. And repeat.
What i need help with.
So i can do the script for 1 pdf. and i assume by using the JSON and the use of a prompt box i can loop the script and just get the next file in the list. I need help implementing my thoughts though, or being corrected if my theory is incorrect.
To anyone that is still reading, thanks for sticking with me and hope i have explained in enough detail that you might be able to help me.
I have just put together a script ( shown below) which uploads multiple files to a database, so now I only need help with linking the the doctype and product_serial_number to each pdf.
My language: Before i start when i mention the variable 'doctype' i mean a category in which you might class a document by, e.g. user manual.
When i mention filename/filetype i mean the type of file it is e.g. '.pdf'. or the filename: 'python.pdf.'
Just dodging that question before it is asked :P.
Desired outcome:
Files are to be uploaded to a sqlalchemy database table. What I would like is for a user to be able to upload multiple files at 'the same time,'(loosely as i dont think the same time is strictly possible, more like one at a time but selecting multiple from the file input.) Linking variables, product_serial_number and doctype to the file in columns on the same row as the file.
So sql table would look something like:
filename data product_serial_number doctype
What i have so far:
Currently i have the html which will all multiple file selection:
<form method=POST enctype=multipart/form-data action='/upload_pdf'> <input type='file' name='inputFile' multiple="multiple" class='mp_FileInput'></input> <button class='pdf01_upload_button' type='submit' value='Upload' ><b>Upload</b></button> </form>html which uses JSON to allow a user to select a doctype and serial number:
<p> serial_number: <input type='text' id='serial_number_entry' name='serial_number_entry'></p>
<select type='text' name='doctype_entry' id='doctype_entry' placeholder='Select a Doc Type...'>
<option value='' disabled selected>Select a Doc Type...</option>
<option>Build Log</option>
<option>Calibration Certificate</option>
<option>Factory Acceptance Test</option>
<option>Performance Verification Certificate</option>
<option>Procedure Checklist</option>
<option>System Configuration Tracking</option>
<option>Test Certificate</option>
</select>
<button id="add-pdf">Upload PDF</button>
<p id='result'> ... </p>
<script>
$(function() {
$('#add-pdf').on('click', function() {
$.getJSON('{{ url_for('test_domain.test_process') }}',{
serial_number: $('input[name="serial_number_entry"]').val(),
doctype: $('select[name="doctype_entry"]').val(),
}, function(data) {
$("#result").text(data.result);
});
return false;
});
});
</script>And the python for a single pdf upload ( ive striped down to the bare bones so if there is a random 'else' or 'if' then its not a codding mistake, just me cutting things out.): def upload_file_pdf():
product_serial_number_store = request.form['product_serial_number']
Doc_Type_Store = request.form['Doc_Type_Input']
if Tempfile and allowed_file(Tempfile.filename):
filename = secure_filename(Tempfile.filename)
newFile = pdf_test_equipment_store(related_to=related_to, name=Tempfile.filename, product_serial_number= product_serial_number_store,doctype=Doc_Type_Store, date_time=datetime.utcnow(), data=Tempfile.read(), place_of_procedure=Tester.location, uploaded_by=Tester.username)
db.session.add(newFile)
db.session.commit()
flash(' Saved ' + Doc_Type_Store + ' for ' + product_serial_number_store + ' to the test equipment pdf store!')
return render_template('upload_pdf.html', title='upload_pdf', filename=filename)
And i can combine both html documents in 1 form, lose the javascript and use the python in order to allow for 1 a single pdf to be uploaded. What needs to happen:
User clicks upload button and selects ( lets say 10) pdfs to upload.
I would like my website to select the first pdf of the list, ask the user to input a doctype and product_serial_number , then query the information and upload to table. Then select pdf 2 from the list and ask the user to input doctype and product_serial_number. And repeat.
What i need help with.
So i can do the script for 1 pdf. and i assume by using the JSON and the use of a prompt box i can loop the script and just get the next file in the list. I need help implementing my thoughts though, or being corrected if my theory is incorrect.
To anyone that is still reading, thanks for sticking with me and hope i have explained in enough detail that you might be able to help me.
I have just put together a script ( shown below) which uploads multiple files to a database, so now I only need help with linking the the doctype and product_serial_number to each pdf.
if request.method == 'POST':
uploaded_files =request.files.getlist("file[]")
print uploaded_files
for file in uploaded_files:
filename = secure_filename(file.filename)
newFile = pdf_test_equipment_store(name=file.filename, date_time=datetime.utcnow(), data=file.read(), place_of_procedure=Tester.location, uploaded_by=Tester.username)
db.session.add(newFile)
db.session.commit()
flash(' Saved to the pdf store!')
return render_template('upload_pdf.html', title='upload_pdf', filename=filename)
else:
return render_template('upload_pdf.html', title='upload_pdf')
