是否可以保护flv文件免遭下载?我想保护我的文件免受下载,但我没有资金用于流媒体服务器,我认为它提供了某种保护.这些文件通过PHP流式传输,位于我服务器上的上传文件夹中.
我已经使用PHP来确保只有订阅者可以观看视频,但我基本上希望更进一步,防止订阅者在登录时使用下载程序(如Sothink Flv Downloader for Firefox)下载我的视频.
好吧,这可能看起来像一个noob问题,但我认识的许多Web开发人员都没有完全理解.
基本上,如何使用FileUpload控件的上传事件将文件从网页文件输入框上传到网络服务器(例如托管.net网站)?
我的理解是向服务器发出了一个请求流的帖子,然后将其传递回浏览器并开始将数据流传输到服务器.
我的朋友说他的理解是整个文件被浏览器编码到post请求中,然后(大量)帖子被发送到服务器.
我认为这可能不是这样的情况,因为没有办法建立一个ajax进度条,因为服务器将无法做任何事情,直到它收到整个帖子,到那时它可能只是保存文件到其磁盘.
那么它从浏览器到服务器的实际工作方式呢?
在C#/ .NET(在Windows上)有没有办法使用文件流读取"增长"文件?打开文件流时文件的长度将非常小,但该文件将由另一个线程写入.如果/当文件流"赶上"到另一个线程时(即Read()返回0字节读取时),我想暂停以允许文件缓冲一点,然后继续读取.
我真的不想使用a FilesystemWatcher并继续创建新的文件流(如日志文件所建议的那样),因为这不是一个日志文件(它是一个即时编码的视频文件),性能是个问题.
谢谢,
罗伯特
我正在尝试在Windows上测试live555库(live555.com).以下是说明:http://www.live555.com/liveMedia/#config-windows
我设法生成.mak文件,但现在我不知道如何在Visual Studio 2010中使用它们来启动任何应用程序(如openRTSP或playSIP).
如何在Visual Studio 2010中使用或打开.mak文件?
谢谢您的帮助.问候!
我们希望在Web服务端点中启用有效负载的直接流式传输.我们必须处理大量数据,并希望在处理时传输数据.
我们在版本2.0.0中使用spring-ws-core并使用PayloadRootQNameEndpointMappingas endpoint mapper.作为消息工厂,我们正在使用AxiomSoapMessageFactory.我们实现了StreamingPayload相应的writeTo(XMLStreamWriter writer)方法,我们用它来编写有效载荷(根据spring-ws JIRA票证,SWS-352).
这没有任何错误,但我们想直接流!这显然是不可能的.我们做了一个简单的测试,我们流式传输一些数据以评估行为.
writer.writeStartElement("exampleResponse")
10000.times
{
writer.writeStartElement("example")
writer.writeEndElement()
}
writer.writeEndElement()
Run Code Online (Sandbox Code Playgroud)
我们假设这将直接流式传输到使用者/客户端,因此soap头已经写入我们的编写器并在端点完成后关闭.不幸的是,这是不可能的,流不能直接使用!流被包裹在一个ByteArrayInputStream,在spring-ws源中找到.
执行StreamingOMDataSource显示此(可以在SpringEye中查看).该StreamingOMDataSource呼叫你的StreamingPayload实现和给你一个作家这一点.
public XMLStreamReader getReader() throws XMLStreamException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
serialize(bos, null);
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
return StAXUtils.createXMLStreamReader(bis);
}
Run Code Online (Sandbox Code Playgroud)
该方法#serialize()创建XMLStreamWriter与ByteArrayOutputStream并调用有效载荷,能写入,如上所述.
public void serialize(OutputStream output, OMOutputFormat format)
throws XMLStreamException
{
XMLStreamWriter streamWriter;
if ([...]) {
// Create stream writer …Run Code Online (Sandbox Code Playgroud) 在php程序中,我想逐步解析JSON.例如,给定部分JSON
[1, 2, {"id": 3},
Run Code Online (Sandbox Code Playgroud)
我想在流式传输剩余的JSON输入之前得到1,2和字典.php json_decode刚刚返回NULL,似乎没有办法获得错误的位置.
我创建了一个简单的应用程序,它生成一个给定频率的方波,并在STREAM模式下使用AudioTrack播放它(STREAM_MUSIC).一切似乎工作正常,声音播放正常,但是当流完成后,我在日志中收到消息:
W/AudioTrack(7579):gainBuffer()轨道0x14c228禁用,重启......
即使在调用stop()函数后,我仍然会得到这些.我相信我根据AudioTrack所需的最小尺寸(在我的情况下为6x1024)正确设置了AudioTrack缓冲区大小.我用1024个短裤的较小缓冲区喂它.
我可以得到这些,我应该这样离开吗?
问题是如何使用Hadoop Streaming(仅限)在Hadoop中链接作业.
我们正在尝试使用ASP.Net WebApi返回大型图像文件,并使用以下代码将字节流式传输到客户端.
public class RetrieveAssetController : ApiController
{
// GET api/retrieveasset/5
public HttpResponseMessage GetAsset(int id)
{
HttpResponseMessage httpResponseMessage = new HttpResponseMessage();
string filePath = "SomeImageFile.jpg";
MemoryStream memoryStream = new MemoryStream();
FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read);
byte[] bytes = new byte[file.Length];
file.Read(bytes, 0, (int)file.Length);
memoryStream.Write(bytes, 0, (int)file.Length);
file.Close();
httpResponseMessage.Content = new ByteArrayContent(memoryStream.ToArray());
httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
httpResponseMessage.StatusCode = HttpStatusCode.OK;
return httpResponseMessage;
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常但我们处理的一些文件可能是2 GB及以上的大小导致连接超时.我们过去使用类似于下面的代码(使用HttpHandlers)来对响应流进行响应,以保持连接成功.
byte[] b = new byte[this.BufferChunkSize];
int byteCountRead = 0;
while ((byteCountRead = stream.Read(b, 0, …Run Code Online (Sandbox Code Playgroud)