遇到一种情况,上传一个文件需要遍历保存多遍的时候,只有第一次文件保存生效。发现是文件保存的时候文件指针指到了尾部,导致文件再保存的时候读不到内容。
解决办法:
一:将文件保存再没次open重新读写。
path = "#{Rails.root}"+payment_bill.file_name
content_type = MIME::Type.simplified(%x{file --mime -b #{path} }.chomp)
_temp_f = File.open(path)
_payment_info.ebuychem_attachments.create(:attachment_file => _temp_f,:file_name => new_payment.payment_bill_file_name,:content_type =>content_type ) if params[:payment_info][:payment_bill]
_temp_f.close
二:每次将文件指针重新回到头指针位置
params[:payment_info][:payment_bill].rewind
payment_info.ebuychem_attachments.create(:attachment_file => params[:payment_info][:payment_bill])
总结:ruby提供了 rewind seek等指针移动方法。
分享到:
相关推荐
- **上传代码**:创建一个Action类,处理文件上传请求,使用FileUpload库解析请求,获取Part对象,然后将文件保存到服务器。 - **下载代码**:创建另一个Action类,根据请求参数找到文件路径,读取文件内容,设置...
`.cur`文件是一种特殊的图像格式,专门用于存储Windows系统的鼠标指针样式。`.cur`文件包含了不同形状和大小的光标图像,以及对应的状态信息,如鼠标悬停、点击等。在Windows中,你可以通过更换`.cur`文件来改变鼠标...
包括了控件源码和ASP.NET下的调用实例,上传文件的大孝客户端的唯一身份标识、上传类型(0:断点续传, 1:truncate,重新上传,2:上传,如果该文件已存在,则报403错)、以及记录当前已经上传的文件指针位置,...
4. **进度跟踪**:使用`ftell()`函数获取当前文件指针的位置,从而计算已上传的百分比。这可以用于向用户反馈上传进度。 5. **错误处理**:在整个过程中,需要检测并处理可能出现的错误,如网络中断、磁盘空间不足...
在这个特定的实验任务中,你需要设计一个支持n个用户、每个用户可以保存m个文件的文件系统。为了确保数据安全,文件系统需要具备基本的文件操作功能,如创建(create)、删除(delete)、打开(open)、关闭(close...
第十二课 C语言对文件读写的支持,FILE指针 3.rar第十二课 C语言对文件读写的支持,FILE指针 3.rar第十二课 C语言对文件读写的支持,FILE指针 3.rar第十二课 C语言对文件读写的支持,FILE指针 3.rar第十二课 C语言对...
2. 鼠标指针文件:通常指的是ICO文件,这种文件类型用于存储多个尺寸和颜色深度的图标,包括鼠标指针图标。ICO文件可以被Windows系统识别为程序图标或者桌面图标的资源。 3. 动态与静态图标文件:动态图标文件(如...
在C/C++编程中,头文件和文件指针是两个非常关键的概念,它们在处理输入输出操作时起着至关重要的作用。本文将深入探讨这两个概念,以及如何在处理文本文件时克服换行问题。 首先,让我们来理解什么是头文件。在C/...
5. 保存:将内存中的配置信息写回文件,确保更改持久化。 6. 关闭:释放与文件相关的资源。 接下来,我们谈谈智能指针。在C++中,智能指针是一种能够自动管理动态内存的对象,它在不需要时自动释放内存,从而避免...
在这个修复版中,主要解决了三个关键问题:官方删除操作未触发回调、文件重复上传以及添加上传参数时的`Cannot read property 'append' of null`错误。 首先,关于"官方删除不回调BUG",这通常意味着当用户通过插件...
对文件操作 文件的读入(数据块 及 当个数据) 文件的写入 指针的malloc 与 free 清楚了解指针的应用 数据块 结构体struct string与char的转化
- **`GetFileLen`**函数中,首先记录当前文件指针位置,然后将文件指针移动到文件末尾,获取文件总长度后恢复指针位置。 - **`fileExist`**函数通过尝试打开文件来判断文件是否存在。如果打开成功,则认为文件存在并...
包括了控件源码和ASP.NET下的调用实例,上传文件的大孝客户端的唯一身份标识、上传类型(0:断点续传, 1:truncate,重新上传,2:上传,如果该文件已存在,则报403错)、以及记录当前已经上传的文件指针位置,...
同时,需要考虑错误处理和文件指针的正确管理,确保数据的安全性和完整性。 对于文件上传,通常涉及到网络通信,这需要利用到C++的网络编程库,如libcurl或Boost.Asio。这些库提供了HTTP/HTTPS协议的支持,可以实现...
在完成文件读写后,使用`fclose()`函数关闭文件至关重要,因为这能确保所有数据都被正确地保存到磁盘,并释放系统资源。未关闭的文件可能会导致数据丢失或阻止其他程序访问该文件。 在C++中,STL(Standard ...
通过文件指针,我们可以读取文件内容、向文件写入数据、移动文件指针到文件的任意位置等。本文将详细介绍C语言中文件指针的使用,包括如何打开、读取、写入、关闭文件,以及如何使用文件指针进行更高级的操作。 通过...
合并两个文件内容并保存在另一个文件.doc 通过分析给定的文件信息,我们可以总结出以下知识点: 1. 文件处理:该程序的主要功能是将两个文件的内容合并并保存在另一个文件中。这对于文件处理是非常重要的概念。 ...
"cur"格式的鼠标指针文件是Windows操作系统中常见的指针样式资源,用于定义鼠标的不同状态,如默认、繁忙、等待、链接等。本压缩包包含8套精美的cur格式鼠标指针,为用户提供个性化的桌面体验。 首先,我们来了解...
首先,需要拥有包含新鼠标的指针文件,例如"OW"和"彩色荧光鼠标指针",这些通常是以`.zip`格式压缩的文件。`.zip`文件是一种常见的压缩格式,用于将多个文件或文件夹打包在一起,便于传输和存储。 要安装这些彩色...
WAV音频文件读写,使用智能指针,支持自增音频文件,一小时新建一个文件,声道数、采样率、量化位数默认为1,12500,16