|
|
||
|
On 2013/3/4 16:42, Kevin Martin wrote:
On 4 Mar 2013, at 02:41, albert wrote:However this example can't fulfill my requirement, I want to upload a local exist file while not a trash file.Did it work properly with the example function?I change the readfunction to my code below: c:perform({readfunction=function(n) local datafilename = "mydatafile" local fhandle = io.open(datafilename, "r") local datafromfile = nil if nil ~= fhandle then datafromfile = fhandle:read("*all") fhandle:close() end return datafromfile end}) But my code didn't work.Can you be a bit more specific? What actually happens? Do you get an error/segfault/only part of the file? The two things that jump out at me are: o Are you sure fhandle is valid? o Is the file size larger than n? Thanks, Kevin
require("cURL")
c=cURL.easy_init()
c:setopt_url("ftp://ftptest:secret0815@targethost/file.dat")
c:setopt_upload(1)
count=0
c:perform({readfunction=function(n)
count = count + 1
if (count < 10) then
return "Line " .. count .. "\n"
end
return nil
end})
print("Fileupload done")
The example code works correctly.
Now I change the example code to:
require("cURL")
c=cURL.easy_init()
c:setopt_url("ftp://ftptest:secret0815@targethost/file.dat")
c:setopt_upload(1)
local upmgr = 0
c:perform({readfunction=function(n)
local datafilename = "mydatafile"
local fhandle = io.open(datafilename, "r")
local datafromfile = nil
if nil ~= fhandle then
datafromfile = fhandle:read("*all")
fhandle:close()
end
if upmgr == 0 then
upmgr = upmgr + 1
return datafromfile
else
return nil
end
end})
print("Fileupload done")
If the data file to upload is like 2k, it worked fine, but if the data
file is like 2M or bigger, then commit error:
String returned from readfunction is too long (4419973) How could I correct my uploading code? And thanks for the reply.