Hi, I’m implementing the server side of a file upload with resume option
part of a web app.
The client sends the last position so I have to append to the existing
file from that position.
Current code is:
@uploadfile = @params[“uploadfile”]
content_range = @request.env[‘HTTP_CONTENT_RANGE’]
filename = @uploadfile.original_filename
data = @uploadfile.read
position to append from
pos = content_range[/\d+/].to_i
f = File.open("#{filename}", “a”)
#f.pos = pos
f.seek(pos)
f.write(data)
f.close
I’ve tried opening the file with a and a+ modes. I’ve tried doing
rewing, setting pos (like the commented line) and seek, and none of them
works, the new data is always appended at the end of the file.
Any clues?
Thanks
Tulsi D. wrote:
filename = @uploadfile.original_filename
I’ve tried opening the file with a and a+ modes. I’ve tried doing
rewing, setting pos (like the commented line) and seek, and none of them
works, the new data is always appended at the end of the file.
Open the file in r+ mode. This is read-write mode that starts at the
beginning of the file and allows you to seek to a specific position.
Jamey
Jamey C. wrote:
Open the file in r+ mode. This is read-write mode that starts at the
beginning of the file and allows you to seek to a specific position.
I can’t believe it was so easy, I’ve never even read the “r” section,
assuming it was read only… thanks a lot, it works great!
On 11/27/06, Tulsi D. [email protected] wrote:
Jamey C. wrote:
Open the file in r+ mode. This is read-write mode that starts at the
beginning of the file and allows you to seek to a specific position.
I can’t believe it was so easy, I’ve never even read the “r” section,
assuming it was read only… thanks a lot, it works great!
If you want this to be cross-platform, make sure you actually open it
“rb+” or your code will mysteriously fail on Windows.
-austin