A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一、上传文件:

1、  php.ini配置: 找到 File Uploads

    file_uploads = On    //打开上传文件的功能

    upload_tmp_dir  =  'd:/web/tmp'   ;   //上传文件的临时存储目录;取决于web服务器部署目录

    upload_max_filesize 3M;    //允许上传文件最大值,如若需要较大的值,则需先修改post方式的传输最大值

    post_max_size   =8M;

2、  .htaccess 配置

    属性和值之间用空格‘  ’隔开非等号‘=’:



  • adddefaultcharset utf-8     //设置默认字符  



  • php_value file_uploads On   //打开上传功能  



  • php_value post_max_size 6M   // post提交的最大值  



  • php_value upload_max_filesize 6M  //允许上传的最大值  


(一)上传单个文件:

        html 表单:



  • <form action="upload.php"  method="post" enctype="multipart/form-data">  



  •     <p><input type="file" name="ufile"></p>  



  •     <p><input type="submit" name="submit" value="上传"></p>  



  • </form>


        PHP接受处理上传文件



  • //主要为move_uploaed_file() 的运用



  • if (!empty($_POST)) {  



  •         $dirName = "./".date("Y-m-d");  



  •         if (!is_dir($dirName)) {  



  •             mkdir($dirName);  //如无此目录则创建  



  •         }  



  •         $suffix = strrchr($_FILES['ufile']['name'], '.');//截取文件的后缀名  



  •         $url = $dirName.'/'.uniqid().$suffix;  //在日期的目录里以原来的后缀名以唯一性的文件名保存  



  •         $bool = move_uploaded_file($_FILES['ufile']['tmp_name'], $url); //从原来的临时文件移动到指定路径  



  •         if ($bool) {  



  •             echo "上传成功!";  



  •             exit();  



  •         }else{  



  •             echo "上传失败!";  



  •             exit();  



  •         }  



  •     }


(二)上传多个文件:



  • <form action="upload.php"  method="post" enctype="multipart/form-data">



  •         <p><input type="file" name="ufile[]" multiple=""></p>



  •         <p><input type="submit" name="submit" value="上传"></p>



  • </form>




  • if(!empty($_POST)){



  •                 //创建保存目录



  •                 $dirName = "./".date('Y-m-d');



  •                 if (!is_dir($dirName)) {



  •                         mkdir($dirName);



  •                 }



  •                 foreach ($_FILES['ufile']['tmp_name'] as $key => $value) {



  •                         //取文件后缀 ($key与$_FILES['ufile']['name']数组的key一致)



  •                         $suffix = strrchr($_FILES['ufile']['name'][$key],'.');  



  •                         //生成前缀



  •                         $preffix = uniqid();



  •                         //保存路径



  •                         $url = $dirName."/".$preffix.$suffix;



  •                         $bool = move_uploaded_file($value,$url);



  •                 }



  •                 if ($bool) {



  •                         echo "上传成功!";



  •                         exit();



  •                 }else{



  •                         echo "上传失败!";



  •                         exit();



  •                 }







  •         }


thinkPHP3.2.3 引入编辑器

1、下载 http://kindeditor.net/down.php 压缩包加压到指定目录;

2、引入css及js 加上带id的文本框



  • <link rel="stylesheet" href="__PUBLIC__/kindeditor-master/themes/default/default.css"> <!-- 编辑器css -->







  • <div>



  •      <label class="control-label">图文信息 </label>



  •      <div class="controls">



  •            <p><textarea id="ke_c" name="detail" cols="26" rows="26"> </textarea></p>



  •      </div>



  • </div>







  • <script src="__PUBLIC__/kindeditor-master/kindeditor-all-min.js"></script>  <!-- 编辑器js -->



  • <script src="__PUBLIC__/kindeditor-master/lang/zh-CN.js"></script>



  • <script>



  •             var editor;



  •             KindEditor.ready(function(K) {



  •                 K.create('#ke_c', {



  •                     allowFileManager : true



  •                 });



  •             });



  • </script>


3、在编辑器压缩包的目录下创建名为attached的目录并修改目录为写入权限;

二、下载文件

    A. 当文件为浏览器不能识别的类型时,可直接用a标签实现下载 , 如:

<a href="../load/ay.xls">下载</a>  

    B.当文件为浏览器能识别的类型时,即如.html/.js/.css/.xml/.jpg/.jpeg等浏览器能解析直接打开的文件,可用header( ) 及file_get_contents( ) 实现,如:

<a href="download.php">下载</a>


  • $filename = "./load/5b0bd336b7980.jpg";  



  • //提示浏览器为图片文件  



  • header('Content-type: image/jpeg');     



  • //Content-Disposition为内容处理方式,处理为附件,强制浏览器下载文件  



  • header('Content-Disposition: attachment; filename='.$filename);   



  • //将整个文件读入一个字符串,即将二进制对象转为utf-8编码  



  • echo file_get_contents($filename);


    常见header( ) 响应头设置:



  • //定义编码  



  • header( 'Content-Type:text/html;charset=utf-8 ');  







  • //文档语言  



  • header('Content-language: en');  







  • //CSS  



  • header('Content-type: text/css');  







  • //Javascript  



  • header('Content-type: text/javascript');  







  • //JPEG Image  



  • header('Content-type: image/jpeg');  







  • //XML  



  • header('Content-type: text/xml');







  • //JSON  



  • header('Content-type: application/json');  







  • //PDF  



  • header('Content-type: application/pdf');  







  • //RSS  



  • header('Content-Type: application/rss+xml; charset=ISO-8859-1');  







  • //Text (Plain)  



  • header('Content-type: text/plain');  







  • //Atom  



  • header('Content-type: application/atom+xml');











  • //转到一个新地址  



  • header('Location: http://www.example.org/');







  • // ok  



  • header('HTTP/1.1 200 OK');  







  • //设置一个404头:  



  • header('HTTP/1.1 404 Not Found');  







  • //设置地址被永久的重定向  



  • header('HTTP/1.1 301 Moved Permanently');  







  • //文件延迟转向:  



  • header('Refresh: 10; url=http://www.example.org/');  



  • print 'You will be redirected in 10 seconds';  







  • //当然,也可以使用html语法实现  



  • // <meta http-equiv="refresh" content="10;http://www.example.org/ />  







  • // override X-Powered-By: PHP:  



  • header('X-Powered-By: PHP/4.4.0');  



  • header('X-Powered-By: Brain/0.6b');  







  • //告诉浏览器最后一次修改时间  



  • $time = time() - 60; // or filemtime($fn), etc  



  • header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');  







  • //告诉浏览器文档内容没有发生改变  



  • header('HTTP/1.1 304 Not Modified');  







  • //设置内容长度  



  • header('Content-Length: 1234');  







  • //设置为一个下载类型  



  • header('Content-Type: application/octet-stream');  



  • header('Content-Disposition: attachment; filename="example.zip"');  



  • header('Content-Transfer-Encoding: binary');  



  • // load the file to send:  



  • readfile('example.zip');  







  • // 对当前文档禁用缓存  



  • header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');  



  • header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past  



  • header('Pragma: no-cache');  







  • //设置内容类型:  



  • header('Content-Type: text/html; charset=iso-8859-1');  



  • header('Content-Type: text/html; charset=utf-8');  



  • header('Content-Type: text/plain'); //纯文本格式  



  • header('Content-Type: image/jpeg'); //JPG***  



  • header('Content-Type: application/zip'); // ZIP文件  



  • header('Content-Type: application/pdf'); // PDF文件  



  • header('Content-Type: audio/mpeg'); // 音频文件  



  • header('Content-Type: application/x-shockw**e-flash'); //Flash动画  







  • //显示登陆对话框  



  • header('HTTP/1.1 401 Unauthorized');  



  • header('WWW-Authenticate: Basic realm="Top Secret"');  



  • print 'Text that will be displayed if the user hits cancel or ';  



  • print 'enters wrong login data';  




  • //下载xlsx文件



  • $filename = rtrim($_SERVER['DOCUMENT_ROOT'],'/').'/app/files/payment_status.csv';  



  • header('Content-Disposition: attachment; filename=payment_status.xlsx');  



  • header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');  



  • header('Content-Length: ' . filesize($filename));  



  • header('Content-Transfer-Encoding: binary');  



  • header('Cache-Control: must-revalidate');  



  • header('Pragma: public');  



  • readfile($filename);  




3 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马