Ich möchte den vollständigen Pfad der PDF-Datei zusammen mit ihren im Browser angezeigten Inhalten anzeigen. Mein Skript hat ein Eingabe-HTML, wo der Benutzer den Dateinamen eingibt und das Formular abschickt. Das Skript sucht nach der Datei, wenn sie in den Unterverzeichnissen gefunden wird, gibt sie den Inhalt der Datei in den Browser aus und zeigt auch ihren Namen an. Ich bin in der Lage, den Inhalt anzuzeigen, aber nicht in der Lage, den vollen feinen Namen auch gleichzeitig anzuzeigen. Oder, wenn ich den Dateinamen zeige, bekomme ich Müllzeichenanzeige für den Inhalt. Bitte führen.Wie wird der PDF-Dateiinhalt sowie der vollständige Name im Browser mit dem CGI-Python-Skript angezeigt?
Skript a.py:
import os
import cgi
import cgitb
cgitb.enable()
import sys
import webbrowser
def check_file_extension(display_file):
input_file = display_file
nm,file_extension = os.path.splitext(display_file)
return file_extension
form = cgi.FieldStorage()
type_of_file =''
file_nm = ''
nm =''
not_found = 3
if form.has_key("file1"):
file_nm = form["file1"].value
type_of_file = check_file_extension(file_nm)
pdf_paths = [ '/home/nancy/Documents/',]
# Change the path while executing on the server , else it will throw error 500
image_paths = [ '/home/nancy/Documents/']
if type_of_file == '.pdf':
search_paths = pdf_paths
else:
# .jpg
search_paths = image_paths
for path in search_paths:
for root, dirnames, filenames in os.walk(path):
for f in filenames:
if f == str(file_nm).strip():
absolute_path_of_file = os.path.join(root,f)
# print 'Content-type: text/html\n\n'
# print '<html><head></head><body>'
# print absolute_path_of_file
# print '</body></html>'
# print """Content-type: text/html\n\n
# <html><head>absolute_path_of_file</head><body>
# <img src=file_display.py />
# </body></html>"""
not_found = 2
if search_paths == pdf_paths:
print 'Content-type: application/pdf\n'
else:
print 'Content-type: image/jpg\n'
file_read = file(absolute_path_of_file,'rb').read()
print file_read
print 'Content-type: text/html\n\n'
print absolute_path_of_file
break
break
break
if not_found == 3:
print 'Content-type: text/html\n'
print '%s not found' % absolute_path_of_file
Die html ist eine regelmäßige html mit nur 1 Eingabefeld für Dateinamen.
Können Sie eine alternative Lösung vorschlagen, wo dies erreicht werden kann? – user956424
@ user956424 Ich habe einige Antworten auf die Antwort hinzugefügt. – BlackJack
http://stackoverflow.com/users/3815611/blackjack Ich möchte dies mit CGI, Python alone..no js erreichen – user956424