使用PHP和HTML通过进度条上传多个文件

使用PHP和HTML通过进度条上传多个文件,php,html,file-upload,cross-browser,Php,Html,File Upload,Cross Browser,我最近创建了一个脚本,允许人们使用PHP后端和HTML表单上传多个文件。我想实现一个进度条,这样用户在上传多个文件时就不会点击上传按钮两次。如果可能的话,我希望避免使用javascript或ajax,但同时我希望跨浏览器兼容 以下是我的html表单数据: <form enctype="multipart/form-data" action="uploader.php" method="POST"> Choose Course Code: <select name="subjec

我最近创建了一个脚本,允许人们使用PHP后端和HTML表单上传多个文件。我想实现一个进度条,这样用户在上传多个文件时就不会点击上传按钮两次。如果可能的话,我希望避免使用javascript或ajax,但同时我希望跨浏览器兼容

以下是我的html表单数据:

<form enctype="multipart/form-data" action="uploader.php" method="POST">
Choose Course Code:
<select name="subject_list">
<option value="ACC 100">ACC 100</option>
<option value="ACC 406">ACC 406</option>
<option value="ECN 104">ECN 104</option>
<option value="ECN 204">ECN 204</option>
<option value="FIN 300">FIN 300</option>
<option value="GMS 200">GMS 200</option>
<option value="ITM 100">ITM 100</option>
<option value="ITM 301">ITM 301</option>
<option value="ITM 305">ITM 305</option>
<option value="ITM 330">ITM 330</option>
<option value="ITM 350">ITM 350</option>
<option value="ITM 407">ITM 407</option>
<option value="ITM 500">ITM 500</option>
<option value="ITM 501">ITM 501</option>
<option value="ITM 505">ITM 505</option>
<option value="ITM 600">ITM 600</option>
<option value="LAW 122">LAW 122</option>
<option value="SSH 105">SSH 105</option>
<option value="Other">Other</option>
</select><br>
Choose a file to upload (Max 500MB): <input name="rye_file[]" type="file" id="file_style" multiple />
<input type="submit" name="submit" value="Upload" />
</form> 
<form action="/logout.php">
<input type="submit" value="Logout">
</form>

选择课程代码:
ACC 100
ACC 406
ECN 104
ECN 204
鳍300
GMS 200
ITM 100
ITM 301
ITM 305
ITM 330
ITM 350
ITM 407
ITM 500
ITM 501
ITM 505
ITM 600
第122条
SSH 105
其他

选择要上载的文件(最大500MB):
这是我的后端:

<?php
$subject_list = $_POST['subject_list'];
$uploaddir = "/var/www/fixnode_website/content/Secure Login/Rye High/uploads/$subject_list";
$files=array();
$fdata=$_FILES['rye_file'];
if(is_array($fdata['name'])){
 for($i=0;$i<count($fdata['name']);++$i){
  $files[]=array(
   'name'     => $fdata['name'][$i],
   'tmp_name' => $fdata['tmp_name'][$i],
  );
 }
}
else $files[]=$fdata;

foreach ($files as $file) {
  // uploaded location of file is $file['tmp_name']
  // original filename of file is $file['name']
  $move_file = move_uploaded_file($file['tmp_name'], "$uploaddir/".$file['name']);
}
if($move_file){
   echo "File is valid, and was successfully uploaded to: $subject_list folder. Please wait, your browser will refresh in 5-10 seconds!";
   header('Refresh: 10; URL=/index.php');
  } 
  else {
     echo "Upload failed";
 }
?>

这可能不是你想要的,但我建议你试试

  • 上传[免费],还有一个html5 版本有时候,我尽量不去重新发明轮子
  • 如果你担心上传的费用,那么blueimp呢
  • 非常喜欢HTML5,试试看 (你可以通过推特或Facebook帖子来支付,这有多好?)
  • 其他一些选择:
  • Valums:(一次支付15美元即可获得精美上传器)-有意义

  • 请注意,如果您同意的话,您必须使用Jquery。

    这可能不是您想要的,但我建议您尝试一下

  • 上传[免费],还有一个html5 版本有时候,我尽量不去重新发明轮子
  • 如果你担心上传的费用,那么blueimp呢
  • 非常喜欢HTML5,试试看 (你可以通过推特或Facebook帖子来支付,这有多好?)
  • 其他一些选择:
  • Valums:(一次支付15美元即可获得精美上传器)-有意义

  • 请注意,如果您同意的话,您必须使用Jquery。

    那么您想在客户端做一些动态的事情而不需要任何脚本?对我来说似乎不符合逻辑。我很确定使用HTML5是可能的。不过,如果javascript是最兼容的方式(跨浏览器),我会接受一个答案。你可以使用一个小div和一个flash(如果你有Adobe flash)来与PHP脚本进行通信,以使该条变得简单。下面是一个例子:那么你想在客户端做一些动态的事情而不需要任何脚本?对我来说似乎不符合逻辑。我很确定使用HTML5是可能的。不过,如果这是最兼容的方式(跨浏览器),我会接受javascript的回答。你可以使用一个小div和一个flash(如果你有Adobe flash)来与PHP脚本进行通信,以使该条变得简单。下面是一个例子:uploadify的问题是,只有flash版本是免费的。HTML5版本是付费的。我这样做是为了一个学校项目(文档协作),因此我不想为代码付费。虽然这是一个很好的概念,但使用flash版本有什么缺点吗?为了给你更多的选择,我提供了html5版本和你不需要付费的版本的链接。上传的问题是只有flash版本是免费的。HTML5版本是付费的。我这样做是为了一个学校项目(文档协作),因此我不想为代码付费。虽然这是一个很好的概念,但是使用flash版本有什么缺点吗?只是为了给你更多的选择,我甚至提供了html5版本和你不需要付费的版本的链接。