我有一个包含超过128个字符的值的哈希,现在我通过nstore函数将该哈希存储在文件中。
use strict ;
use warnings ;
use Storable qw(store nstore retrieve);
my $hash = {
###value more than 128 char
'a.key.value.in.a.hash.that.will.be.sored.in.a.file' => 'some.value.that.is.not.getting.stored.on.the.remote.server.strange.enough.if.length.is.greate.than.128.char.may.some.perl.issueee'
};
my $temp_dir = 'C:\TEMP\log';
nstore($hash, "$temp_dir/temp_file");
现在我正尝试通过cgi上传功能从本地服务器上传到远程服务器。
通过nstore生成的本地计算机上的 http://localhost/some/api?file=file
sub post {
my $q = new CGI;
my $filename = $q-param('file');
my $upload_filehandle = $q->upload("file");
open ( UPLOADFILE, ">$upload_dir/$filename" ) or die "$!";
binmode UPLOADFILE;
while ( <$upload_filehandle> ) {
print UPLOADFILE;
}
close UPLOADFILE;
}
问题是,如果散列值长度大于128,则remte机器上的文件被损坏,我无法将其恢复为可恢复的检索功能
答案 0 :(得分:-2)
您的示例未显示nstore()被赋予散列引用作为其第一个arg。
String QUERY11 = "CREATE TABLE " + TABLE_NAME + "(" + COL_DATE + " TEXT, " + COL_FAULT + " TEXT, " + COL_PARTREPLACE + " TEXT, " + COL_AMOUNT + " TEXT, " + COL_TECHNICIAN + " TEXT);";