Javascript 如何将数据导出为m3u8文件?
我想下载并播放服务器上的m3u8文件。我正在使用以下代码读取m3u8文件并将其发送到web服务器。 浏览器正在显示文件的内容,而不是下载文件。 所以请让我知道,如何下载它Javascript 如何将数据导出为m3u8文件?,javascript,html,Javascript,Html,我想下载并播放服务器上的m3u8文件。我正在使用以下代码读取m3u8文件并将其发送到web服务器。 浏览器正在显示文件的内容,而不是下载文件。 所以请让我知道,如何下载它 if ((exportHandle = fopen(v3FileName, "a+")) != NULL) { long end = 0, start = 0, pos = 0; char* m3u8FileDataBuff = NULL; fseek(exportHandle, 0, SEEK_END
if ((exportHandle = fopen(v3FileName, "a+")) != NULL) {
long end = 0, start = 0, pos = 0;
char* m3u8FileDataBuff = NULL;
fseek(exportHandle, 0, SEEK_END);
end = ftell(exportHandle);
fseek(exportHandle, 0, SEEK_SET);
start = ftell(exportHandle);
pos = end - start;
m3u8FileDataBuff = (char *) malloc(pos);
end = 0;
start = 0;
fread(m3u8FileDataBuff, 1, pos, exportHandle);
pClienCommunication->writeBuffer(m3u8FileDataBuff, pos);
free(m3u8FileDataBuff);
fclose(exportHandle);
}
客户端的web浏览器正在显示内容,因为响应的MIME类型要么为nil,要么类似于“text/plain”。正确设置http响应头以指示m3u8文件的mime类型(
application/x-mpegURL
或vnd.apple.mpegURL
)
您提供的代码似乎没有围绕响应头设置任何内容,只是内容
检查pClienCommunication->
的可用API,或者检查其来源地,调整响应标题的选项是什么
或者可能在Web服务器中设置一些规则来服务响应,设置特定URL的MIME类型,或者基于响应内容(但是在Web服务器级别上应用这些规则通常更昂贵,然后在C++部分中创建响应调整响应)。
为什么这个标记的C++,当代码本身是C类的,它的所有问题。在现代C++中,你从来不会做“fCutter(…)”之类的事情,因为这是在文件包装类的析构函数中完成的,所以你不冒FFAD等异常情况下跳过FFACK的情况。 所以在现代C++中,这些东西看起来应该有点像:
{
SomeFileClass exportFile(v3FileName, "a+");
if (exportFile.isOK()) {
SomeFileContentBuffer data = exportFile.read();
pClienCommunication->writeBuffer(data.asCharPtr(), data.size());
}
}
因此,您不能忘记释放任何文件句柄或缓冲区内存(因为特定帮助器类的析构函数将处理这个问题)