我有一个Cordova应用程序,该应用使用C#WebService与SQL数据库进行通信。这很棒。我的问题是,我在服务器上有一些PDF文档,并在数据库中保存了本地filepath,我需要在应用程序中打开这些文件。
我在文档具有可以达到的URL之前做了类似的事情,因此它们只是打开,但是在这种情况下,没有外部访问该文件。
所以我的问题是....我如何最好地将文件从服务器到应用程序打开?
我不需要将文件存储在设备上,只需打开它以便可以读取。
如果有人可以朝着正确的方向引导我,我真的很感激,因为我不知道要实现我追求的最佳方法。
*****更新******
是的,我认为我没有一百万英里,但感觉我在做一些根本上错误的事情。
我正在使用:
创建一个字节[]byte[] bytes = System.IO.File.ReadAllBytes(filepath);
产生非常长的字符串。
在应用程序中,我正在获取该字符串,并使用以下内容将其重新构造为文件:
var bytes = new Uint8Array(data);
saveByteArray("mytest.txt", data);
function base64ToArrayBuffer(base64) {
var binaryString = window.atob(base64);
var binaryLen = binaryString.length;
var bytes = new Uint8Array(binaryLen);
for (var i = 0; i < binaryLen; i++) {
var ascii = binaryString.charCodeAt(i);
bytes[i] = ascii;
}
return bytes;
}
function saveByteArray(reportName, byte) {
var blob = new Blob([byte], {type: "application/txt"});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
var fileName = reportName;
link.download = fileName;
link.click();
}
这将创建一个空文件或损坏的文件。
有人可以帮忙吗?一双新鲜的眼睛会很感激。
谢谢
您可以做的是在C#WebService后端中创建一个新的端点,从此端点下载文件,以本地存储并从应用程序显示。
在端点后面,它将使用数据库中的文件位置,并将文件内容从存储PDF的流中获取。该数据流将作为一个字节数组放置在JSON结果对象中。最后,您的应用必须获得此JSON对象,然后从字节和文件名中构建PDF文件。
希望它有帮助。