国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

用PHP文件上傳的具體思路及實現(xiàn)

2024-05-04 23:04:07
字體:
供稿:網(wǎng)友
  文件上傳我們需要用到html里面表單的type=file類型,及其enctype屬性。這是我們大家必須要用的。當(dāng)然了php函數(shù)庫當(dāng)中的file函數(shù)庫,字符串類型函數(shù)庫,目錄函數(shù)庫及$_files[]的使用是我們必須要用到的。

  也許每一個站點都可能會對上傳文件有許多的限制,這些限制會包括 文件類型,文件大小,擴展名,以及上傳目錄的存在與否,上傳文件的存在與否,目錄的可寫性,可讀性,上傳文件的改名及怎樣把文件從緩存當(dāng)中復(fù)制到你所需要的目錄當(dāng)中。

  當(dāng)然出錯的預(yù)處理也是我們不容忽視的!如果再深一步的討論我們還可以對文件的操作起用事件日志的記錄。

  下面我們通過一段程序來實現(xiàn)這些功能:
  
  首先是我們預(yù)設(shè)的變量值,它包括文件大小,文件擴展名類型,mimi類型,及是否刪除的開關(guān)變量

$max_size = 2000000;
$file_mimes = array('image/jpeg','image/jpg','image/gif'
,'image/png','application/msword');

$file_exts = array('.zip','.jpg','.png','.gif');

$deletable = true;

  下一部就是設(shè)置瀏覽器訪問變量及目錄訪問變量:

$site_name = $_server['http_host'];
$url_dir = http://.$_server['http_host'].dirname($_server['php_self']);
$url_this = http://.$_server['http_host'].$_server['php_self'];

$upload_dir = files/;
$upload_url = $url_dir./files/;
$message =;

  建立上傳目錄并相應(yīng)改變權(quán)限:

if (!is_dir(files)) {
 if (!mkdir($upload_dir))
  die (upload_files directory doesn't exist and creation failed);
 if (!chmod($upload_dir,0755))
  die (change permission to 755 failed.);
}

  用戶請求的處理:


if ($_request[del] && $deletable) {
 $resource = fopen(log.txt,a);
 fwrite($resource,date(ymd h:i:s).delete - $_server[remote_addr].$_request[del]//n);
 fclose($resource);

 if (strpos($_request[del],/.)>0); //possible hacking
 else if (strpos($_request[del],files/) === false); //possible hacking
 else if (substr($_request[del],0,6)==files/) {
  unlink($_request[del]);
  print <script>window.location.href='$url_this?message=deleted successfully'</script>;
 }
}
else if ($_files['userfile']) {
 $resource = fopen(log.txt,a);
 fwrite($resource,date(ymd h:i:s).upload - $_server[remote_addr]
 .$_files['userfile']['name'].
 .$_files['userfile']['type'].//n);
 fclose($resource);

 $file_type = $_files['userfile']['type'];
 $file_name = $_files['userfile']['name'];
 $file_ext = strtolower(substr($file_name,strrpos($file_name,.)));

 //文件大小的檢查:

 if ( $_files['userfile']['size'] > $max_size)
  $message = the file size is over 2mb.;
  //file type/extension check
 else if (!in_array($file_type, $file_mimes)
&& !in_array($file_ext, $file_exts) )
  $message = sorry, $file_name($file_type) is not allowed to be uploaded.;
 else
  $message = do_upload($upload_dir, $upload_url);

 print <script>window.location.href='$url_this?message=$message'</script>;
}
else if (!$_files['userfile']);
else
$message = invalid file specified.;

  列出我們上傳的文件:

$handle=opendir($upload_dir);
$filelist = ;
while ($file = readdir($handle)) {
 if(!is_dir($file) && !is_link($file)) {
  $filelist .= <a href='$upload_dir$file'>.$file.</a>;
 if ($deletable)
  $filelist .= <a href='?del=$upload_dir$file' title='delete'>x</a>;
  $filelist .= <sub><small><small><font color=grey> .date(d-m h:i, filemtime($upload_dir.$file))
.</font></small></small></sub>;
  $filelist .=<br>;
 }
}

function do_upload($upload_dir, $upload_url) {

 $temp_name = $_files['userfile']['tmp_name'];
 $file_name = $_files['userfile']['name'];
 $file_name = str_replace(////,,$file_name);
 $file_name = str_replace(',,$file_name);
 $file_path = $upload_dir.$file_name;

 //file name check
 if ( $file_name ==) {
  $message = invalid file name specified;
  return $message;
 }

 $result = move_uploaded_file($temp_name, $file_path);
 if (!chmod($file_path,0777))
  $message = change permission to 777 failed.;
 else
  $message = ($result)?$file_name uploaded successfully. :
 somthing is wrong with uploading a file.;
 return $message;
}

?>

<center>
<font color=red><?=$_request[message]?></font>
<br>
<form name=upload id=upload enctype=multipart/form-data method=post>
upload file <input type=file id=userfile name=userfile>
<input type=submit name=upload value=upload>
</form>

<br><b>my files</b>
<hr width=70%>
<?=$filelist?>
<hr width=70%>
<small><sup>developed by
<a style=text-decoration:none href=http://tech.citypost.ca>citypost.ca</a>
</sup></small>
</center>
注冊會員,創(chuàng)建你的web開發(fā)資料庫,
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 西和县| 姜堰市| 铅山县| 永春县| 卢氏县| 麻栗坡县| 河南省| 射阳县| 漳浦县| 同仁县| 响水县| 松潘县| 东源县| 贺兰县| 泌阳县| 全州县| 宜丰县| 库车县| 田阳县| 阳原县| 荔浦县| 平乐县| 永顺县| 通许县| 泾阳县| 腾冲县| 冕宁县| 洪江市| 夹江县| 舞阳县| 宁蒗| 洞口县| 开平市| 新安县| 高碑店市| 宜良县| 凤庆县| 贺兰县| 牟定县| 河南省| 潜江市|