标签: stream

如何安全地从 asp.net 中的流中读取?

byte[] bytes = new byte[uploader.UploadedFiles[0].InputStream.Length];
uploader.UploadedFiles[0].InputStream.Read(bytes, 0, bytes.Length);

var storedFile = new document();
string strFullPath = uploader.UploadedFiles[0].FileName;
string strFileName = Path.GetFileName(strFullPath);

storedFile.document_id = Guid.NewGuid();
storedFile.content_type = uploader.UploadedFiles[0].ContentType;
storedFile.original_name = strFileName;
storedFile.file_data = bytes;
storedFile.date_created = DateTime.Now;
db.documents.InsertOnSubmit(storedFile);
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

如果:

在对 Read 的单个调用中从流中读取是非常危险的。您假设所有数据都将立即可用,但情况并非总是如此。您应该始终循环阅读,直到没有更多数据为止。

我应该如何更改上面的代码以使其“不那么危险”?

c# sql asp.net streaming stream

1
推荐指数
1
解决办法
2843
查看次数

如何在 .NET 中将单个 TextWriter 拆分为多个输出?

我从我的 C# 代码调用一个 API,它有一个带有以下标头的方法

public void ExternalFactory.SetOut(TextWriter outputStream)  
Run Code Online (Sandbox Code Playgroud)

我通常称这种方法为

ExternalFactory.SetOut(Console.Out) 
Run Code Online (Sandbox Code Playgroud)

只需让 API 将其所有信息写入控制台。但是,除了写入控制台之外,我还想将此信息存储在更永久的位置,例如文本文件。

我的第一个猜测是我需要创建某种客户 TextWriter 来拆分流并将一个发送到控制台,一个发送到 StreamWriter。这里的正确方法是什么?

c# io stream

1
推荐指数
1
解决办法
1885
查看次数

有没有办法将gd图像资源制作成文件流资源?

可能的重复:
创建图像而不将其存储为本地文件

我需要用 gd 创建一个图像,然后用 php 中的 curl 将它上传到另一个服务器。

所以我遇到了一个问题:gd 图像资源不能用作 curl 的文件流资源。

有没有办法将gd图像资源制作成文件流资源?

- 更新 -

本地磁盘不可写。

php resources gd stream

1
推荐指数
1
解决办法
2548
查看次数

与 2 个不同读者一起阅读流

我有一个文本文件,其中包含我要解析的固定长度表。但是,文件的开头是有关何时生成此表的一般信息(IE 时间、数据等)。

为了阅读此内容,我尝试创建一个FileStream,然后使用 . 读取该文件的第一部分StreamReader。我从文档的顶部解析出我需要的内容,然后当我完成时,将流的位置设置为结构化数据的第一行。

然后我将 a 附加TextFieldParser到流(使用固定长度表的适当设置),然后尝试读取该文件。在第一行,它失败了,在ErrorLine属性中,它列出了表第三行的后半部分。我浏览了一下,发现它位于第一行,但ErrorLine酒店却暗示情况并非如此。

调试时,我发现如果在StreamReader.ReadLine()将其附加TextFieldParser到流后尝试使用我的方法,前两行显示正常。然而,当我阅读第三行时,它返回一行,该行从第三行的前半部分开始(并在文本所在的位置停止ErrorLine)附加文档中稍后的部分内容。如果我在附加之前尝试此操作TextFieldParser,它会很好地读取所有 3 行。

我有一种感觉,这与我将 2 个读者绑定到同一个流有关。我不知道如何使用结构化部分和非结构化部分来阅读此内容,而不只是自己标记这些行。我可以做到这一点,但我假设我不是第一个想要以一种方式读取流的一部分,并以另一种方式读取流的后续部分的人。

为什么会这样跳过,如何读取不同格式的文本文件?

例子:

Date: 3/1/2013
Time: 3:00 PM
Sensor:  Awesome Thing

Seconds   X        Y          Value
0         5.1      2.8        55
30        4.9      2.5        33
60        5.0      5.3        44
Run Code Online (Sandbox Code Playgroud)

为这个简化示例定制的代码:

Boolean setupInfo = true;
DataTable result = new DataTable();
String[] fields;
Double[] dFields;

FileStream stream = File.Open(filePath,FileMode.Open);

StreamReader reader = new …
Run Code Online (Sandbox Code Playgroud)

c# stream filestream streamreader fixed-width

1
推荐指数
1
解决办法
4692
查看次数

如何检查是否支持 Stream.Postion 更新?

我正在处理流,有时我需要更新Position流的。但正如您所知,在某些情况下,这不受支持。例如,当您像我一样从 Web 服务获取流时 :)

如果给定的Stream对象接受Position更新,我在这里寻找的是一种正确的检查方法。

有3个字段,它看起来像要上班,CanReadCanSeekCanWrite。但是我无法通过查看此处对这些字段的 msdn 解释来决定。请帮帮我。

c# stream

1
推荐指数
1
解决办法
84
查看次数

如何通过ffmpeg在源代码中将HLS流保存到本地磁盘?

HSL流被分成多个ts文件,现在我想通过调用ffmpeg API将这些文件和m3u8文件在源代码中保存到本地磁盘。

ffmpeg 支持这个功能吗?如果是,如何实现该功能?否则,谁能给我一些关于如何实现这一目标的建议?

ffmpeg record stream http-live-streaming

1
推荐指数
1
解决办法
9601
查看次数

将消费者补偿从Kafka Streams重新设置为开始

我正在使用Kafka流,并希望将Java的一些使用者偏移量重置为开始。 KafkaConsumer.seekToBeginning(...)听起来像是正确的事情,但是我使用Kafka Streams:

KafkaStreams streams = new KafkaStreams(builder, props);
...
streams.start();
Run Code Online (Sandbox Code Playgroud)

我想根据我定义的具体流管道,这将在引擎盖下创建多个消费者。我可以访问那些吗?还是有其他方法以编程方式重置偏移量?

java stream offset consumer apache-kafka

1
推荐指数
1
解决办法
1185
查看次数

如何在Java 8流过滤器中基于子文档过滤Mongo文档

我试图过滤子文档.

样本记录:

[Document{{_id=597608aba213742554f537a6, upp_id=, content_id=597608aba213742554f537a3, idmapping=Document{{ptype=PDF, clientid=12345, normalizedclientid=12345, systeminstanceid=, sourceschemaname=, platforminternalid=0987654321}}, batchid=null, locale=en_US}}]
Run Code Online (Sandbox Code Playgroud)

我需要使用idmapping.ptype = PDF进行过滤

MongoCursor<Document> cursor = mailboxitemCollection.find(whereClause).iterator();
List<Document> documentList = new ArrayList<Document>();

while (cursor.hasNext()) {
  Document object = cursor.next();
  documentList.add(object);
}

 List<Document> outList = documentList.stream()
        .filter(p -> p.getInteger(CommonConstants.VISIBILITY) == 1
            && (!StringUtils.isEmpty(req.ptype())? (p.getString("idmapping.ptype").equalsIgnoreCase(req.ptype())) : true)
            ).parallel().sequential().collect(Collectors.toCollection(ArrayList::new));

System.out.println(outList);
System.out.println(outList.size());
Run Code Online (Sandbox Code Playgroud)

我得到Null Point异常,无法从List documentList中读取sub/embed文档.

先感谢您!Bharathi

java stream mongodb java-8 java-stream

1
推荐指数
1
解决办法
377
查看次数

在实际EOF之前的cmd的转发输出中的文件结尾

我有一个带有cmd命令转发输出的文件.AC程序循环遍历字符,直到它到达文件末尾.但不幸的是,在文件实际结束之前,文件中有一些EOF指示符.该文件的内容是:

Abbildname                PID      Sitzungsname     Sitz.-Nr.   Speichernutzung
========================= ======== ================ =========== ===============
System Idle Process              0 Services                   0             8 K
System                           4 Services                   0         5ÿ744 K
smss.exe                       440 Services                   0           276 K
csrss.exe                      616 Services                   0         1ÿ924 K
wininit.exe                    720 Services                   0           944 K
services.exe                   792 Services                   0         7ÿ892 K
lsass.exe                      800 Services                   0        14ÿ300 K
svchost.exe                    924 Services                   0           420 K
fontdrvhost.exe                952 Services                   0           680 K
svchost.exe                    960 Services                   0        23ÿ880 K
WUDFHost.exe                  1012 Services                   0         7ÿ416 K
svchost.exe …
Run Code Online (Sandbox Code Playgroud)

c cmd batch-file stream

1
推荐指数
1
解决办法
71
查看次数

Java:如何实时计算正在保存的流中的sha1摘要?

我有一个用Java编写的servlet,它接受多部分形式的发布文件,该文件需要保存在MongoDb / GridFS中。我已经有为此工作的代码。

这是一个代码片段,显示了如何使用org.apache.commons.fileupload包完成此操作。它几乎不占用内存,因为它不会在内存中保留太多数据。

        ServletFileUpload upload = new ServletFileUpload();
        FileItemIterator iter = upload.getItemIterator(req);
        while (iter.hasNext()) {
            FileItemStream item = iter.next();
            String name = item.getFieldName();
            InputStream stream = item.openStream();
            if (item.isFormField()) {
                toProcess.put(name, Streams.asString(stream));
            } else {
                String fileName = item.getName();
                String contentType = item.getHeaders().getHeader("Content-Type");
                GridFSUploadOptions options = new GridFSUploadOptions()
                        // .chunkSizeBytes(358400)
                        .metadata(new Document("content_type", contentType));
                ObjectId fileId = gridFSFilesBucket.uploadFromStream(fileName, stream, options);
                fileIds.add(fileId);
                fileNames.add(fileName);
            }
Run Code Online (Sandbox Code Playgroud)

我还需要计算所有文件的sha1哈希值。阿帕奇digestutils可以用于此目的。它具有一种可以计算流中的sha1的方法:

https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/digest/DigestUtils.html#sha1-java.io.InputStream-

我的问题是此方法完全消耗了流。我需要将输入流分为两部分。将一部分输入到SHA-1计算中,另一部分输入到GridFS存储桶中。

我怎样才能做到这一点?我当时正在考虑创建自己的“管道”,该管道具有输入和输出流,可以转发所有数据,但可以实时更新摘要。

我只是不知道如何开始写这样的管道。

java stream digest

1
推荐指数
1
解决办法
642
查看次数