[英]how to open a file in javascript with multiple extensions?
我在這里面臨一個小問題...我想編寫一個javascript函數來打開具有不同擴展名的文件,我已經編寫了一個可以打開文件的函數,但是其擴展名是用代碼硬性編寫的,如何使其動態化? 像不是打開“ file1.pdf”或“ file1.png”,我想將擴展名存儲為變量並動態打開。 這是代碼:-
<script>
function viewCM() {
var transferID = document.getElementById("theTransferID").value;
$.get("/Uploads/" + transferID + ".pdf")
.done(function () {
// Do something now you know the file exists.
window.open("/Uploads/" + transferID + ".pdf", '_blank', 'fullscreen=yes');
}).fail(function () {
// File doesn't exist - do something else.
alert("File was not found");
})
return true;
}
</script>
上面的功能可以完美地與任何類型的擴展一起使用,但是我不知道如何使擴展成為動態
提前致謝
編輯 :我沒有從服務器獲取文件名,其想法只是我有一個上傳按鈕,用於上傳與特定“傳輸”相關的文件,並且我將上傳文件的名稱設置為transferID.whatever extension
當我想打開文件時,我只寫了我發布的代碼。 因此,我不會在服務器上搜索文件名。
也許您可以在名稱中的點后找到內容以搜索類型,這只是一個想法。
var afterDot = str.substr(str.indexOf('.'));
然后根據類型執行您的代碼。 (這可以大大改善)。
編輯:
var transferID = document.getElementById("theTransferID").value;
var extension = transferID.substr(transferID.indexOf('.'));
現在您有這種可能性:
if(extension == ".pdf"){ $.get("/Uploads/" + transferID + ".pdf")
.done(function () {//...}
跟進原始問題的評論:
function viewCM(fileExtension) {
var transferID = document.getElementById("theTransferID").value;
$.get("/Uploads/" + transferID + "." + fileExtension)
.done(function () {
// Do something now you know the file exists.
window.open("/Uploads/" + transferID + "." + fileExtension, '_blank', 'fullscreen=yes');
}).fail(function () {
// File doesn't exist - do something else.
alert("File was not found");
})
return true;
}
如果可以將文件擴展名傳遞給函數, if
在viewCM()
內不必有任何if
語句(除非您計划執行某種類型的驗證)。
它將根據文件類型自動調整。 意味着如果pdf然后打開pdf查看器,則excel應該打開excel window.open(file Name);
對於面臨相同問題的任何人,我都采取了某種“幼稚”的解決方法,通過使多個JavaScript
函數打開各種類型的文件來解決此問題。
它很簡單:嘗試讀取pdf文件,如果您不能調用一個讀取png文件的函數,則等!
<script>
function viewCM() {
var transferID = document.getElementById("theTransferID").value;
$.get("/Uploads/" + transferID + ".pdf")
.done(function () {
// Do something now you know the file exists.
window.open("/Uploads/" + transferID + ".pdf", '_blank', 'fullscreen=yes');
}).fail(function () {
// File doesn't exist - call the next function.
viewCMPng();
})
return true;
}
function viewCMPng() {
var transferID = document.getElementById("theTransferID").value;
$.get("/Uploads/" + transferID + ".png")
.done(function () {
// Do something now you know the file exists.
window.open("/Uploads/" + transferID + ".png", '_blank', 'fullscreen=yes');
}).fail(function () {
// File doesn't exist - show alert message.
alert("File was not found");
})
return true;
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.