当您需要将流重置为开头(例如MemoryStream)时,最佳做法是使用
stream.Seek(0, SeekOrigin.Begin);
Run Code Online (Sandbox Code Playgroud)
要么
stream.Position = 0;
Run Code Online (Sandbox Code Playgroud)
我看到两者都工作正常,但想知道一个人是否比另一个更正确?
我需要一个小代码片段,它从给定的.zip文件中解压缩一些文件,并根据它们在压缩文件中的格式提供单独的文件.请发布您的知识并帮助我.
我想将控制器和视图分解为单独的类库,以便可以在多个ASP.NET MVC 3应用程序中重用它们.使用单独的程序集时控制器部分不是问题,但是让视图引擎定位视图是.
我最终使用将你的asp.net mvc Razor视图编译成一个单独的dll.
我错过了一种更简单的方法吗?
可能重复:
如何将流保存到文件?
我有一个流对象,可能是一个图像或文件(msword,pdf),我决定以非常不同的方式处理这两种类型,因为我可能想要优化/压缩/调整大小/生成缩略图等.我调用一个特定的方法来将图像保存到磁盘,代码:
var file = StreamObject;
//if content-type == jpeg, png, bmp do...
Image _image = Image.FromStream(file);
_image.Save(path);
//if pdf, word do...
Run Code Online (Sandbox Code Playgroud)
我如何实际保存单词和PDF?
//multimedia/ video?
Run Code Online (Sandbox Code Playgroud)
我看了(可能不够硬)但我找不到任何地方......
我是ASP.net CORE的新手,我想上传一个文件(图像)并将其存储在一个独立的文件夹中.我一直在关注这个tuto https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads但我不知道如何将它存储在一个文件中,它刚刚上传到服务器上这是html:
<form method="post" enctype="multipart/form-data" asp-controller="UploadFiles" asp-action="Index">
<div class="form-group">
<div class="col-md-10">
<p>Upload one or more files using this form:</p>
<input type="file" name="files" multiple />
</div>
</div>
<div class="form-group">
<div class="col-md-10">
<input type="submit" value="Upload" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是控制器
[HttpPost("UploadFiles")]
public async Task<IActionResult> Post(List<IFormFile> files)
{
long size = files.Sum(f => f.Length);
// full path to file in temp location
var filePath = Path.GetTempFileName();
foreach (var formFile in files)
{
if (formFile.Length > 0)
{
using (var stream = new …Run Code Online (Sandbox Code Playgroud) 我想直接从TCP套接字将字节流式传输到磁盘上的文件.在Java中,可以使用NIO通道,特别是SocketChannel和FileChannel.引用FileChannel#transferFrom(...):
此方法可能比从源通道读取并写入此通道的简单循环更有效.许多操作系统可以直接从源通道将字节传输到文件系统缓存中,而无需实际复制它们.
显然,我可以编写标准的"复制循环"来读取和写入字节,甚至利用异步I/O来最小化等待.这可以与Java正在利用的平台本机功能相比,还是有另一种方法?
我正在尝试使用C#中的FluentFTP实现FTP传输.获取目录列表非常简单,但我坚持下载文件.
我发现有一篇文章在其评论中有一个例子,但它不会编译,因为我无法找到FtpFile类的来源.
有没有人举例说明我是如何使用FluentFTP从ftp服务器下载文件的?
编辑:我在这里找到了一些例子https://github.com/hgupta9/FluentFTP但是没有关于如何实际下载文件的例子.
在本文中免费FTP库有一个例子,但它不编译.这是一个例子
FtpClient ftp = new FtpClient(txtUsername.Text, txtPassword.Text, txtFTPAddress.Text);
FtpListItem[] items = ftp.GetListing();
FtpFile file = new FtpFile(ftp, "8051812.xml"); // THIS does not compile, class FtpFile is unknown
file.Download("c:\\8051812.xml");
file.Name = "8051814.xml";
file.Download("c:\\8051814.xml");
ftp.Disconnect();
Run Code Online (Sandbox Code Playgroud)
编辑:解决方案
我发现的文章包含一个让我走错方向的例子.似乎曾经有过一种下载方法,但现在已经很久了.所以答案就是让它去使用OpenRead()方法来获取流,而不是将该流保存到文件中.
该系统是与WCF REST Web服务通信的Flex应用程序.我正在尝试将文件从Flex应用程序上传到服务器并遇到一些问题,我希望有人可以帮忙.我在Flex应用程序中使用FileReference来浏览和上传此处定义的文件:
http://blog.flexexamples.com/2007/09/21/uploading-files-in-flex-using-the-filereference-class/
然后,我在WCF REST Web服务中使用流(在调试器中显示为System.ServiceModel.Dispatcher.StreamFormatter.MessageBodyStream)接收文件(使用WCF 4 REST服务的项目类型)
[WebInvoke(Method = "POST", UriTemplate = "_test/upload")]
public void UploadImage(Stream data)
{
// TODO: just hardcode filename for now
var filepath = HttpContext.Current.Server.MapPath(@"~\_test\testfile.txt");
using (Stream file = File.OpenWrite(filepath))
{
CopyStream(data, file);
}
}
private static void CopyStream(Stream input, Stream output)
{
var buffer = new byte[8 * 1024];
int len;
while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, len);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:此帖子中使用的CopyStream方法:如何将流保存到C#中的文件?
该文件保存没有任何问题.我遇到的问题是该文件包含的信息比我想要的多.以下是保存文件的内容(源文件仅包含"这是文件的内容"):
------------ae0ae0Ef1ae0Ef1ae0gL6gL6Ij5cH2
Content-Disposition: form-data; name="Filename"
testfile.txt …Run Code Online (Sandbox Code Playgroud) 我正在为我的女朋友编写一个评分程序,但我一直在尝试将数据输出到我嵌入到程序中的 excel 文件中。我目前正在写入一个空白的 excel 文件,但想使用预制的 excel 文件并将数据导出到适当的单元格。我不知道如何告诉程序使用资源文件夹中的 xls 文件,而不是制作一个空白的 excel 文件。这是到目前为止保存它的代码。我正在使用 C# 2008 快速版。
谢谢
我的资源参考是:Properties.Resources.gradesheet
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//add data to excel
xlWorkSheet.Cells[1, 1] = firstName;
xlWorkSheet.Cells[2, 1] = lastName;
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
Run Code Online (Sandbox Code Playgroud) 出于模拟目的,我想将FileResult输出到磁盘上的实际文件中.
有没有办法获取FileResult的内容并将其写入文件?FileResult上的暴露属性有点偏差.
我正在寻找类似的东西:
var file_result = controller.CsvExport();
file_result.ToFile(@"C:\temp.csv");
public static void WriteToFile(this FileResult fileResult, string fileName)
{
// what to implement here?
[...]
}
Run Code Online (Sandbox Code Playgroud)