我想在我的網站上實現一個拖放文件上傳器。文件在被刪除後立即上傳,我想要生成一個帶預覽的彈出窗口的URL。我正在使用dropzone.js。在dropzone的文檔中,提供了一個樣本作爲從服務器發回數據以便在文件上傳後顯示的指南。 https://github.com/enyo/dropzone/wiki/FAQ#i-want-to-display-additional-information-after-a-file-uploaded從Python(Flask)發送數據到Javascript?
然而,當我嘗試在我的神社模板創建的懸浮窗內嵌Javascript來使用url_for,我取回一個鏈接,看起來像/%7Bfilename%7D 只是可以肯定我突然出現一個快速的打印聲明在那裏的URL,它出現在控制檯罰款。
我在python上傳:
def upload_file():
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
if is_image(file.filename): # generates a shortened UUID name for the image
filename = shortuuid.uuid()[:7] + "." + file.filename.rsplit(".", 1)[1]
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
@app.route ('/<filename>')
def uploaded_image(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
,並在我的index.html模板內聯JS:
<script>
var mydropzone = new Dropzone(document.body, {
url: "{{url_for('upload_file')}}",
previewsContainer: "#previews",
clickable: "#clickable",
init: function() {
this.on("success", function(file, responseText) {
var responseText = " {{ url_for('uploaded_image', filename='{filename}')}} ";
var span = document.createElement('span');
span.setAttribute("style", "position: absolute; bottom: -50px; left: 3px; height: 28px; line-height: 28px; ")
span.innerHTML = responseText;
file.previewTemplate.appendChild(span);
});
}
});
我在這裏缺少一些基本的東西?我是否需要使用諸如JSON/Ajax之類的東西(從來不用這些東西,但Google一直提供這些東西),因爲URL是從服務器發回的數據?
這樣做的任何指導原則?從哪裏開始?謝謝。 –