创建“下载重定向”页面

时间:2011-08-26 17:25:57

标签: php forms redirect process download

我有一个表单,用户选择要下载的图像,然后process_form.php执行创建zip文件并将用户想要的图像放入该zip文件的脏工作,最后准备下载,像这样:

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=images.zip");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
readfile("images.zip"); 

只要用户点击表单上的“提交”按钮,就会发生下载。

我想创建一个类似于:

的页面
  

您的下载将自动开始。如果没有,请单击此处。

我得到的建议是制作一个“中间”页面,然后使用javascript触发下载。

location.href='process_form.php'

好的,完成。所以,现在,这个新的“中间”页面创建了一个zip文件并将其抛出da serva,并显示“你的下载应该bla bla bla”,并且javascript重定向到process_form.php。但是,我所看到的只是一个空白页面,即使在PHP的if(isset($_POST)位的关闭之后“中间”页面中有HTML .......所以,为什么我的页面空白?

解决方案

使用HTML代替。

<meta http-equiv="refresh" content="5;url=process_ads.php"> 

有效。

2 个答案:

答案 0 :(得分:0)

来自OP自己的回答:

  

解决方案

     

使用HTML代替。

<meta http-equiv="refresh" content="5;url=process_ads.php"> 
     

有效。

答案 1 :(得分:0)

试试这个

def picker_current_index_for_column (column)
  arr = query('pickerTableView', :selectionBarRow)
  arr[column]
end
# methods common to generic and date pickers
def picker_current_index_for_column_is(column, val)
  picker_current_index_for_column(column) == val
end

def previous_index_for_column (column)
  picker_current_index_for_column(column) - 1
end

def picker_next_index_for_column (column)
  picker_current_index_for_column(column) + 1
end

def picker_scroll_down_on_column(column)
  new_row = previous_index_for_column column
  query("pickerTableView index:'#{column}'", [{:selectRow => new_row},
                                              {:animated => 1},
                                              {:notify => 1}])
end

def picker_scroll_up_on_column(column)
  new_row = picker_next_index_for_column column
  query("pickerTableView index:'#{column}'", [{:selectRow => new_row},
                                              {:animated => 1},
                                              {:notify => 1}])
end
def visible_titles (column)
  query("pickerTableView index:#{column} child pickerTableViewWrapperCell", :wrappedView, :text).reverse
end

# May only work on circular pickers - does _not_ work on non-circular
# pickers because the visible titles do _not_ follow the selected index
def selected_title_for_column (column)
  selected_idx = picker_current_index_for_column column
  titles = visible_titles column
  titles[selected_idx]
end

def scroll_picker(dir, column)
  if dir.eql? 'down'
    picker_scroll_down_on_column column
  else
    picker_scroll_up_on_column column
  end
  sleep 0.4
end