小编Tho*_*day的帖子

Google AppEngine中POST请求中文件的名称

给出html表格......

  <form id="mainform" action="/upload" enctype="multipart/form-data" method="post">
        <div>
            <input type="file" name="img"/>
        </div>
        <div>
            <input type="submit" value="Send">
        </div>
    </form>
Run Code Online (Sandbox Code Playgroud)

......和处理程序......

class Picture(db.Model):
  image = db.BlobProperty()

class Submission(webapp.RequestHandler):
    def post(self):
        picture = Picture()
        image = self.request.get("img")
        picture.image = db.Blob(image)
        picture.put()
        self.redirect('/')
Run Code Online (Sandbox Code Playgroud)

...在处理程序中是否有任何方法可以获取用户为上传输入的文件名?在PHP中,我可以引用$ _FILES ['img'] ['name'],但是我没有看到什么语法(如果有的话)可以用于request.get.在另一个问题中,另一个作者在他的html页面中使用一个javascript例程来提取每次OnChange事件发生时用户选择的文件名,然后在隐藏字段中单独传递它.这有必要吗?PHP似乎免费获取文件名.

post google-app-engine

3
推荐指数
1
解决办法
1619
查看次数

perl:这里是反引号操作符内的文档

给定一个程序实用程序从stdin获取命令并返回一个有用的退出代码,这个perl语法有效:

my $result = `utility -switch1 -switch2 <<HERE
set ridin_round_the_world TRUE;
do this;
sign that;
try { 
   make some_girl; 
   return 0;
} 
except { 
   sleep --week;  
   exit 1;
}
HERE`;
print "result is $result\n";
Run Code Online (Sandbox Code Playgroud)

所谓"作品",我指的是perl脚本启动该实用程序,管道在命令列表,等到实用程序退出,并返回结果.

但为什么它有效呢?反引号如何知道调用程序,然后在HERE文档中输入管道?我对perl实现感到幸运,还是这种标准行为?

perl backticks

2
推荐指数
1
解决办法
952
查看次数

变量占用的空间何时在c ++中解除分配?

一旦从函数返回控件,变量占用的空间是否会被释放?

我以为它被解除了分配.

在这里,我编写了一个函数,即使在从函数CoinDenom返回数组的本地引用之后也能正常工作,使用它来打印命名总和所需的最小硬币数的结果.如果空间被解除分配,它如何能够打印出正确的答案?

int* CoinDenom(int CoinVal[],int NumCoins,int Sum) {
  int min[Sum+1];
  int i,j;
  min[0]=0;
  for(i=1;i<=Sum;i++) {
    min[i]=INT_MAX;
  }

  for(i=1;i<=Sum;i++) { 

    for(j=0;j< NumCoins;j++) {

      if(CoinVal[j]<=i && min[i-CoinVal[j]]+1<min[i]) {
        min[i]=min[i-CoinVal[j]]+1;
      }
    }
  }
  return min; //returning address of a local array
}

int main() {

  int Coins[50],Num,Sum,*min;
  cout<<"Enter Sum:";
  cin>>Sum;
  cout<<"Enter Number of coins :";
  cin>>Num;
  cout<<"Enter Values";
  for(int i=0;i<Num;i++) {
    cin>>Coins[i];
  }

  min=CoinDenom(Coins,Num,Sum);
  cout<<"Min Coins required are:"<< min[Sum];
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ scope

1
推荐指数
3
解决办法
578
查看次数

是否存在Perl习语,它是在替换运算符中调用子例程的功能等价物?

Perl允许......

$a = "fee";
$result = 1 + f($a) ; # invokes f with the argument $a
Run Code Online (Sandbox Code Playgroud)

但不允许,或者说不做我想做的事......

s/((fee)|(fie)|(foe)|(foo))/f($1)/ ; # does not invoke f with the argument $1
Run Code Online (Sandbox Code Playgroud)

期望的最终结果是实现正则表达式匹配的替换的一种方式.

我必须写

sub lala {
  my $haha = shift;
  return $haha . $haha;
}
my $a = "the giant says foe" ;
$a =~ m/((fee)|(fie)|(foe)|(foo))/;
my $result = lala($1);
$a =~ s/$1/$result/;
print "$a\n";
Run Code Online (Sandbox Code Playgroud)

perl substitution subroutine idiomatic-perl

1
推荐指数
1
解决办法
144
查看次数

在perl中,有一种简洁的方法来组合glob和printf吗?

我希望@list包含$ root_dir中匹配*YYYYMMDD*的所有文件名,其中YYYYMMDD是25小时前.

我试试......

my ($y, $m, $d) = (localtime(time - 25 * 60 * 60))[5,4,3]; 
my $pattern = sprintf('*%4d%02d%02d*',$y+1900,$m+1,$d);
print "The pattern is $pattern\n"; 
my @files = <$pattern>;
foreach (@files) {
    print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)

...但是我没有获取文件列表,而是在未打开的文件句柄上获得readline().

我知道<>运算符可以解释变量,因此<$ y $ m $ d>将在一年中最后三个月的三分之二天内工作,因为那些将是有两位数的月和日,但是不稳健.

我必须写...

$m = sprintf('%02d',$m+1);  
$d = sprintf('%02d',$d+1);
my @files = <*$y$m$d*>;
Run Code Online (Sandbox Code Playgroud)

......还是有更简洁的东西?就像是 ...

# invalid code unless you want to produce the string "readline() on unopened filehandle" for some reason
my @files = …
Run Code Online (Sandbox Code Playgroud)

perl printf glob

0
推荐指数
1
解决办法
324
查看次数