欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

基于PHP的AJAX技術實現文件異步上傳_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:新手入門:初學動態網頁PHP的18個例子
如何創建我們的第一個PHP頁面呢?非常簡單的!選擇我們使用的一個最好的設計工具,當然你也可以 只使用記事本。創建之后記得要保存為擴展名為PHP的文件,然后傳到我們的服務器上。 在編寫PHP

異步的文件上傳是在現代的AJAX實現的Web應用里面經常要遇到,必須解決的問題。但是標準的AJAX類(XMLHttpRequest)無法實現傳輸文件的功能。因此,這里討論的內容就是如何在AJAX的技術的基礎之上構建異步的文件上傳功能。在這個功能當中需要使用到內置的框及(IFRAME)來傳輸文件。這個功能實現的效果是頁面在上傳文件的時候,用戶還可以使用該頁面并且填寫文件描述。

這個例子是我們引用AJAX的經典案例進行分析的。

系統環境

· 較新版本的瀏覽器。例如Opera,Firefox或者 Internet Explorer。

· PHP 4.3.0 或更高版本

· PHP 5 版本

· PHP 中的 'short_open_tag' 選項開啟(否則會發生解析錯誤)。

功能分析

通過內置的IFRAME(框架)進行文件上傳。具備包括三個部分組成。

· 在頁面中間有一個簡單的<form...表單,表單只包含了<input type="file" ... >控件。這個表單的目標鏈接就是一個隱藏得IFRAME(通過 CSS的風格" display: none;"實現)并且表單里面唯一一個控件的OnChange事件用來觸發JavaScript函數。這個函數的作用是檢查用戶提交的擴展名,然后提交表單。

· 在服務器端用PHP編寫了一個處理過程(用FILEFRAME坐注釋了)。這個處理過程用來把從客戶端上傳的文件進行檢查后保存在服務器,并且通過javascript代碼的形式返回給用戶。返回給用戶的Javascript腳本通過"parent.window.document"更改了用戶現在正在查看的頁面,設置了文件的名稱并啟用了讓用戶提交表單的按鈕。啟用按鈕的操作是通過getElementById函數實現的。

· 在主頁面還有一個表單,它包含了用戶提交的描述和隱藏的文件名。用戶可以在文件上傳的同時填寫文件的描述。當文件上傳結束以后,用戶點擊按鈕,就可以看上傳以后返回給用戶的文件信息了。(通過返回來的文件名和用戶輸入的描述構成文件信息)。

可能你會說這么操作不符合常理:文件在用戶確認之前就已經被提交了。如果用戶沒有提交的話,情況會如何呢。你可以自己在擴展處理被用戶放棄的文件。

這個例子把文件存儲在一個文件系統的目錄下。你需要在腳本開始運行的時候配置下這個目錄,具體的包含這個目錄信息的變量是$upload_dir 和$web_upload_dir。這里有一個對目錄是否可寫的權限檢查。

這里我們用到了以下幾個PHP函數:

· move_uploaded_file - 轉移一經上傳到服務器的文件

· fopen - 打開文件

· fwrite - 把內容寫入文件

· fclose - 關閉文件

· str_replace - 替換字符串

· filesize - 返回文件大小

· filemtime - 返回處理時間

你可以通過手冊查到這些函數如果使用。請注意要把HTM(<, >, &)標記替換為(<, > 和 &)。

源代碼

以下為引用的內容:

<?PHP
$upload_dir = "/var/www/anyexample/aeu"; // 文件存儲的路徑
$web_upload_dir = "/aeu"; // 文件在Web目錄下的路徑
$tf = $upload_dir.'/'.md5(rand()).".test";
$f = @fopen($tf, "w");
if ($f == false)
die("Fatal error! {$upload_dir} is not writable. Set 'chmod 777 {$upload_dir}'
or something like this");
fclose($f);
unlink($tf);

//處理上傳的文件
if (isset($_POST['fileframe']))
{
 $result = 'ERROR';
 $result_msg = 'No FILE field found';

 if (isset($_FILES['file'])) // 從瀏覽器接受文件
 {
  if ($_FILES['file']['error'] == UPLOAD_ERR_OK) // 沒有錯誤
  {
   $filename = $_FILES['file']['name']; // 文件名
   move_uploaded_file($_FILES['file']['tmp_name'], $upload_dir.'/'.$filename);
   // 處理的主過程-轉移文件到 $upload_dir
   $result = 'OK';
  }
  elseif ($_FILES['file']['error'] == UPLOAD_ERR_INI_SIZE)
   $result_msg = 'The uploaded file exceeds the upload_max_filesize directive in PHP.ini';
  else
   $result_msg = 'Unknown error';
 }

 echo '<html><head><title>-</title></head><body>';
 echo '<script language="javascript" type="text/Javascript">'."\n";
 echo 'var parDoc = window.parent.document;';
 '
 if ($result == 'OK')
 {
  echo 'parDoc.getElementById("upload_status").value = "file successfully uploaded";';
  echo 'parDoc.getElementById("filename").value = "'.$filename.'";';
  echo 'parDoc.getElementById("filenamei").value = "'.$filename.'";';
  echo 'parDoc.getElementById("upload_button").disabled = false;';
 }
 else
 {
  echo 'parDoc.getElementById("upload_status").value = "ERROR: '.$result_msg.'";';
 }

 echo "\n".'</script></body></html>';
 exit();
}

function safehtml($s)
{
 $s=str_replace("&", "&", $s);
 $s=str_replace("<", "<", $s);
 $s=str_replace(">", ">", $s);
 $s=str_replace("'", "'", $s);
 $s=str_replace("\"", """, $s);
 return $s;
}

if (isset($_POST['description']))
{
 $filename = $_POST['filename'];
 $size = filesize($upload_dir.'/'.$filename);
 $date = date('r', filemtime($upload_dir.'/'.$filename));
 $description = safehtml($_POST['description']);

 $html =<<<END
 <html><head><title>{$filename} [uploaded by IFRAME Async file uploader]</title></head>
 <body>
  <h1>{$filename}</h1>
  <p>This is a file information page for your uploaded file. Bookmark it, or send to anyone...</p>
  <p>Date: {$date}</p>
  <p>Size: {$size} bytes</p>
  <p>Description:
  <pre>{$description}</pre>
  </p>
  <p><a href="{$web_upload_dir}/{$filename}" style="font-size: large;">download file</a><br>
  <a href="{$PHP_SELF}" style="font-size: small;">back to file uploading</a><br>
  <a href="{$web_upload_dir}/upload-log.html" style="font-size: small;">upload-log</a></p>
  <br><br>Example by <a href="http://www.anyexample.com/">AnyExample</a>
 </body></html>
 END;
 
 $f = fopen($upload_dir.'/'.$filename.'-desc.html', "w");
 fwrite($f, $html);
 fclose($f);
 $msg = "File {$filename} uploaded,
 <a href='{$web_upload_dir}/{$filename}-desc.html'>see file information page</a>";

 $f = fopen($upload_dir."/upload-log.html", "a");
 fwrite($f, "<p>$msg</p>\n");
 fclose($f);

 setcookie('msg', $msg);
 header("Location: http://".$_SERVER['HTTP_HOST'].$PHP_SELF);
 exit();
}

if (isset($_COOKIE['msg']) && $_COOKIE['msg'] != '')
{
 if (get_magic_quotes_gpc())
  $msg = stripslashes($_COOKIE['msg']);
 else
  $msg = $_COOKIE['msg'];
  setcookie('msg', '');
}
?>
<!-- Beginning of main page -->
<html><head>
<title>IFRAME Async file uploader example</title>
</head>
<body>
<?PHP
 if (isset($msg))
  echo '<p style="font-weight: bold;">'.$msg.'</p>';
?>
<h1>Upload file:</h1>
<p>File will begin to upload just after selection. </p>
<p>You may write file description, while you file is being uploaded.</p>

<form action="<?=$PHP_SELF?>" target="upload_iframe" method="post" enctype="multipart/form-data">
 <input type="hidden" name="fileframe" value="true">
 <!-- Target of the form is set to hidden iframe -->
 <!-- From will send its post data to fileframe section of this PHP script (see above) -->

 <label for="file">text file uploader:</label><br>
 <!-- JavaScript is called by OnChange attribute -->
 <input type="file" name="file" id="file" onChange="jsUpload(this)">
</form>
<script type="text/Javascript">
/* This function is called when user selects file in file dialog */
function jsUpload(upload_field)
{
 // this is just an example of checking file extensions
 // if you do not need extension checking, remove
 // everything down to line
 // upload_field.form.submit();
 
 var re_text = /\.txt|\.XML|\.zip/i;
 var filename = upload_field.value;

 /* Checking file type */
 if (filename.search(re_text) == -1)
 {
  alert("File does not have text(txt, XML, zip) extension");
  upload_field.form.reset();
  return false;
 }

 upload_field.form.submit();
 document.getElementById('upload_status').value = "uploading file...";
 upload_field.disabled = true;
 return true;
}
</script>
<iframe name="upload_iframe" style="width: 400px; height: 100px; display: none;">
</iframe>
<!-- For debugging purposes, it's often useful to remove
"display: none" from style="" attribute -->

<br>
Upload status:<br>
<input type="text" name="upload_status" id="upload_status"
value="not uploaded" size="64" disabled>
<br><br>

File name:<br>
<input type="text" name="filenamei" id="filenamei" value="none" disabled>

<form action="<?=$PHP_SELF?>" method="POST">
 <!-- one field is "disabled" for displaying-only. Other, hidden one is for sending data -->
 <input type="hidden" name="filename" id="filename">
 <br><br>

 <label for="photo">File description:</label><br>
 <textarea rows="5" cols="50" name="description"></textarea>

 <br><br>
 <input type="submit" id="upload_button" value="save file" disabled>
</form>
<br><br>
<a href="<?=$web_upload_dir?>/upload-log.html">upload-log</a>
<br><br><br>

Example by <a href="http://www.anyexample.com/">AnyExample</a>
</body>
</html>

以上的講解就是提供一種思路供大家參考。大家也可以根據自己的需求進行相應的優化。

分享:新手入門:IIS6環境下的PHP最佳配置方法
雖然 LAMP 組合很不錯,但是如果想要架設一臺同時支持PHP、ASP、ASP.NET、JSP、Perl的Web虛擬主機服務器,還是用 Windows 2003的IIS 6最好。網上有很多介紹在IIS 6上配置PHP的文章,但是那些方

來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
相關PHP教程
国产欧美一区二区三区鸳鸯浴| 国产在线一区二区三区| 69sex久久精品国产麻豆| 青娱乐免费在线视频| 丝袜连裤袜欧美激情日韩| 久久久久青草大香线综合精品| 国产一区二区三区免费视频| 伊人色综合影院| 国产在线视频卡一卡二| 精品理论电影在线| 一区二区在线观看免费| 欧美亚洲伦理www| 玖玖爱视频在线| 空姐吹箫视频大全| 麻豆精品一区二区综合av| 日韩色视频在线观看| 另类欧美小说| 国内偷拍精品视频| 精品大片一区二区| 亚洲成人黄色影院| 国产欧美日韩最新| 国产精品无码一区二区三区免费 | 中文字幕一区二区久久人妻网站| 欧美高清免费| 99久久精品国产精品久久| 日韩视频中文字幕| 国产一区二区网| 国产日韩精品suv| 老司机午夜精品视频在线观看| 日韩欧美国产一区在线观看| 国产精品欧美一级免费| 日本高清成人免费播放| http;//www.99re视频| 在线免费看黄视频| 国产乱人伦丫前精品视频| 国产精品成人一区二区艾草| 欧美一级大片视频| 日本美女视频网站| 欧美h版在线观看| 国产人成亚洲第一网站在线播放 | 一区二区三区美女视频| 国产精品网址在线| 国产伦精品一区二区三区妓女| 亚洲精品在线国产| 国产精品久久久久精k8| 国产激情综合五月久久| 成人免费毛片日本片视频| 精品国产一级| ...xxx性欧美| 国产美女精彩久久| 日韩一级av毛片| 国产精品探花在线观看| 日韩欧美在线第一页| 激情视频一区二区| 国产无遮挡又黄又爽| 国产综合自拍| 日韩精品中文字幕一区| 午夜久久久久久久久久久| 国产又粗又猛又爽又黄视频 | 91深夜福利视频| 日韩欧美在线视频播放| 色综合久久一区二区三区| 在线一区二区三区| 日韩不卡av| 国产成人精品一区二区色戒| 日韩av午夜在线观看| 一区二区三欧美| 色七七在线观看| 日韩中文字幕一区| 久久精品这里有| 伊人成年综合电影网| 欧美一区二区私人影院日本| 特级黄色录像片| 午夜精品一区二区三| 国产69精品久久久久777| 欧美激情精品久久久| jjzz黄色片| 亚洲精品911| 成人精品高清在线| 白白在线精品| 国产亚洲va综合人人澡精品| 日本视频久久久| 韩国三级hd中文字幕| 欧美色图国产精品| 欧美酷刑日本凌虐凌虐| 看一级黄色录像| 午夜精品久久久久久久91蜜桃| 豆国产96在线|亚洲| 91av视频在线免费观看| 亚洲欧美va天堂人熟伦| 在线中文字幕亚洲| 亚洲精品在线网站| 另类小说第一页| 4438五月综合| 午夜日韩在线电影| 日韩免费三级| 性欧美18一19性猛交| 久久综合色天天久久综合图片| 国产精品91在线观看| 黄色香蕉视频在线观看| 亚洲制服av| 久久久久www| 北岛玲一区二区| 婷婷六月综合| 亚洲精品videossex少妇| 午夜激情福利在线| 伊人久久大香线蕉av超碰| 日本韩国视频一区二区| 久久久天堂国产精品| 亚洲成人短视频| 亚洲图片欧美色图| 亚洲欧洲精品在线| 色丁香婷婷综合久久| 国产精品免费视频观看| 久久久久高清| 精品人妻午夜一区二区三区四区| 久久亚洲精华国产精华液 | 人妻无码一区二区三区| 91精品国产乱码久久久久久 | 久久韩剧网电视剧| 泷泽萝拉在线播放| 亚洲午夜伦理| 久久伊人精品视频| 大胸美女被爆操| 国产欧美一区二区色老头| 久久久精品国产亚洲| 色无极影院亚洲| 亚洲精品欧美| 欧美成人精品三级在线观看| 日韩女同一区二区三区| 国产欧美精品久久| 欧美激情综合色| 色欲一区二区三区精品a片| 日本va欧美va欧美va精品| 91po在线观看91精品国产性色| 欧美成人三级视频| 国产精品99久| 亚洲一区二区自拍| 中文字幕自拍偷拍| 国产欧美一区二区精品性色| 久久er99热精品一区二区三区 | 国产精品一区在线观看你懂的| 国产精品久久久久久久久久久久| 亚洲一区 视频| 波多野结衣一区二区三区| 91入口在线观看| www.国产视频| 亚洲最大成人综合| 日本一区免费观看| 日本一区免费网站| 日本韩国精品在线| 99免费视频观看| 九九综合久久| 亚洲人成电影网| 加勒比一区二区| 日日夜夜精品视频天天综合网| 欧美一区二区三区图| 1级黄色大片儿| 99在线热播精品免费| 国产一区精品视频| 五月激情婷婷综合| 色综合久久精品| 国产精品亚洲二区在线观看| 日韩成人激情| 精品国产依人香蕉在线精品| 九九精品视频免费| 成人av免费观看| 国产有色视频色综合| 天堂中文在线看| 色婷婷精品久久二区二区蜜臀av| 久久精品免费网站| 天天综合精品| 久久久久久av| 国产又大又长又粗又黄| 中文字幕在线观看二区| 国产一区视频导航| 成人情视频高清免费观看电影| 精品二区在线观看| 亚洲va在线va天堂| 91看片就是不一样| 亚洲区综合中文字幕日日| 欧美日韩第一页| 国产又大又黄视频| 欧美国产日韩a欧美在线观看| 一本一道久久a久久精品综合| 亚洲精品v亚洲精品v日韩精品| 精品粉嫩超白一线天av| 色天使在线视频| 久久99国内精品| 国产激情美女久久久久久吹潮| 熟妇人妻一区二区三区四区| 欧美亚洲一区三区| 一级日本黄色片| 国产女优一区| 国产日韩欧美另类| 免费a级片在线观看| 在线观看国产一区二区| 熟妇无码乱子成人精品| 午夜一区二区三区不卡视频| 成人激情视频小说免费下载| 手机看片一区二区| 91精品一区二区三区久久久久久| 国产伦精品一区三区精东| 热久久久久久久| 成人免费视频网站入口| 草莓视频成人appios| 欧美mv和日韩mv的网站| 日韩欧美黄色网址| heyzo一本久久综合| 一区二区三区|亚洲午夜| 给我免费播放日韩视频| 色偷偷综合社区| 国产做受高潮漫动| 亚洲免费在线看| 一道本成人在线| 艹b视频在线观看| 一本久道综合久久精品| 91社区国产高清| 成人看片网页| 亚洲国产高清自拍| 日韩成人毛片视频| 国产欧美精品一区二区色综合| 日本手机在线视频| 欧美暴力喷水在线| 国产欧美日韩综合精品| 第四色男人最爱上成人网| 亚洲国产精品yw在线观看| 综合五月激情网| 国产精品蜜臀在线观看| 91av资源网| 国产日韩高清一区二区三区在线| 99re视频在线观看| 国内不卡的一区二区三区中文字幕 | 日韩欧美你懂的| 免费91在线观看| 国产三级三级三级精品8ⅰ区| 男人添女人下面高潮视频| 黄色成人在线网址| 97免费资源站| 日韩精品成人| 久久夜色精品国产欧美乱| 伊人网视频在线| 欧美日免费三级在线| 亚洲自拍偷拍图| 国产日韩精品一区二区三区| 亚洲人成无码www久久久| 久久综合影视| 视频一区视频二区视频三区高| 欧美男gay| 欧美一级视频在线观看| 欧美大片免费| 亚洲丝袜在线视频| 看黄色一级大片| 欧美在线三级电影| 日本精品久久久久中文| 国产精品美女久久久久高潮| 欧美性猛交xxx乱久交| 日本中文字幕一区二区有限公司| 欧美日韩高清免费| 欧美日韩国产免费观看视频| 国产精品视频一| 精品国产乱码一区二区三区| 欧美久久久精品| 亚洲奶汁xxxx哺乳期| 亚洲国产一区二区三区四区| 韩国av中文字幕| 韩国av一区二区三区在线观看| 亚洲国产另类久久精品| 亚洲一区二区91| 精品日韩美女的视频高清| 成人午夜福利一区二区| 国产精品区一区二区三区 | 高清成人在线观看| 免费国产黄色网址| 日韩国产成人精品| 在线观看日韩羞羞视频| 韩日欧美一区| 日本一区不卡| 重囗味另类老妇506070| 极品校花啪啪激情久久| 日本欧美视频| 亚洲一区二区三区香蕉| 欧美一区二区三区红桃小说| 国产精品久久中文| 深夜福利一区| 日本久久久久久| 国产午夜亚洲精品一级在线| 午夜精品久久久99热福利| 韩国精品主播一区二区在线观看| 久久精品视频网站| 午夜小视频在线播放| 中文字幕亚洲精品| 丁香花免费高清完整在线播放| 精品无人区乱码1区2区3区在线 | 精品日韩成人av| 一级片免费在线播放| 91精品视频网| 精品久久久久久久久久久久久久久久| 欧美日韩视频在线第一区| 国产一级片免费看| 精品视频一区二区不卡| 亚洲国产精品午夜在线观看| 欧美专区日韩专区| 欧美成人精品欧美一级乱黄| 欧美男生操女生| 免费观看成人毛片| 日韩欧美黄色影院| 在线观看国产成人| 亚洲老头同性xxxxx| 亚洲国产成人精品一区二区三区| 中文字幕av一区中文字幕天堂| 成人毛片在线精品国产| 久久精品国产久精国产一老狼| 国产欧美一区二区三区精品酒店| 九九热这里只有精品6| 韩国女主播一区二区| 午夜精品国产精品大乳美女| 精品午夜视频| 国产精品亚发布| 久久99影视| 国产一区二区无遮挡| 91精品电影| 亚洲午夜精品一区二区| 噜噜噜91成人网| 免费看国产曰批40分钟| 国产成人亚洲精品狼色在线| 天天视频天天爽| 国产欧美日韩在线观看| 9.1成人看片| 激情av一区二区| 久久久久久久久久久97| 影音先锋久久资源网| 中文字幕亚洲情99在线| 97se综合| 欧美亚洲视频一区二区| 高潮久久久久久久久久久久久久| 成人在线观看视频网站| 欧美成人激情| 天堂精品一区二区三区| 日本sm残虐另类| 色综合手机在线| 欧美高清在线一区二区| 99在线视频免费| 欧美午夜理伦三级在线观看| 久久久精品毛片| 亚洲夜晚福利在线观看| 婷婷综合六月| 国产成人一区三区| 国产精品一区2区3区| 日本视频一区二区在线观看| 丝袜诱惑亚洲看片| www.超碰com| 国产精品人人做人人爽人人添 | 久热精品在线观看| 精品国产不卡一区二区三区| 亚洲欧美强伦一区二区| 97在线视频一区| 九九免费精品视频在线观看| 日本一区二区在线| 久久99蜜桃精品| 亚洲精品mv在线观看| 一区二区三区精品视频在线| 日本三级欧美三级| 日韩电影网在线| 精品视频在线一区二区在线| 成人国产在线激情| 国产精品a级| 久无码久无码av无码| 26uuu久久天堂性欧美| 在线国产视频一区| 欧美日韩一区二区三区高清| av免费观看网址| 国模精品一区二区三区色天香| 日韩有码一区| 日本一区二区精品| 国产一区二区视频在线| 超碰男人的天堂| 在线观看三级视频欧美| 国产一区二区三区在线观看| 欧美极品在线视频| 欧美系列电影免费观看| 一本—道久久a久久精品蜜桃| 国产91高潮流白浆在线麻豆| 欧美 变态 另类 人妖| 欧美电影影音先锋| 日本成人动漫在线观看| 国产精品爱久久久久久久| 午夜精品偷拍| 精品99在线视频| 亚洲精品日日夜夜| 亚洲婷婷综合网| 久热国产精品视频| 国产探花一区| 亚洲乱码日产精品bd在线观看| 91麻豆免费在线观看| 成人在线观看免费完整| 日韩精品视频在线播放| 精品一区二区三区中文字幕视频| 久久免费一区| 国产精品一二三四五|