下载音频的用户不是问题,它是我们单独提供的功能。
用户可以从播放器链接从"复制链接/音频地址"获得整个链接。此链接是第三部分目录,我们无法设置访问权限。结果,任何技术意识的用户都可以回击和删除URL中的文件名并访问存储其他用户音频的整个目录。
文件足够大,以至于暂时存储在我们的解决方案中也不可行。
我也更喜欢C#中的CodeBehind解决方案,而不是JavaScript。
编辑:使它起作用。将请求放在SRC属性中的ASPX/ASHX页面上。Surverside代码将像这样返回流:
byte[] data = req.DownloadData(url);
response.Clear();
response.ClearHeaders();
response.ContentType = "audio/mpeg";
response.AddHeader("Content-Length", data.Length.ToString());
response.OutputStream.Write(data, 0, data.Length);
response.End();
您将目录的知识保留在服务器上,而不是在URL中。为用户提供类似的内容:
http://yourhost.com/getaudio.aspx?fileid=324653476
数据库将324653476映射到服务器上的路径。Audio.aspx页面/处理程序或类似内容将读取文件的字节并将其写入响应流,或者对服务器进行服务器端指令进行相同操作(它不会发送HTTP重定向以发送用户发送用户http://yourhost.com/path/to/files/abc.mp3(使用httpresponse.write.writefile,transmitfile或类似
如果您没有编写代码来管理此代码的食欲,请考虑在为音频文件的服务器上或在临时服务器上的服务器上重写反向代理URL。设置内容,以便您的用户可以访问:
http://yourhost.com/getaudio/abc.mp3
URL重写器应在内部将其重写为http://yourhost.com/path/to/files/abc.mp3并获取它,然后将字节发送回客户端(不要将其配置为发送重定向((。优势是http://yourhost.com/getaudio,并且不匹配重写规则,因此如果用户尝试使用它,则它无法解决,并且用户永远不会知道文件的真实路径
也就
更简单地说,您可以只能上传一个带有默认名称(例如default.html,index.html(的空白文档,以便在音频文件的目录中上传,以便任何要求任何要求http://yourhost.com/path/to/的人文件/获取空白文件?