公司要开发一个文件办公管理系统,有些功能我不知道能不能实现。
像最主要的就是不同职位点上传时就是上传到事先规定好的文件夹里,而不能让他们自己选择。他们要从服务器下载也是这样,也是不用自己选择,下载到事先规定好的文件夹里。
    这功能我还真的没见过。希望大虾们多多指点。

解决方案 »

  1.   

    需要根据具体情况来建立文件夹,一般来说是按日期来建议文件夹的:参考:mkdir
    (PHP 4, PHP 5)mkdir — 新建目录说明
    bool mkdir ( string $pathname [, int $mode [, bool $recursive [, resource $context ]]] )
    尝试新建一个由 pathname 指定的目录。 注意也许想用八进制数指定模式,也就是说该数应以零打头。模式也会被当前的 umask 修改,可以用 umask() 来改变。 
    Note: mode 在 Windows 下被忽略。自 PHP 4.2.0 起成为可选项。 默认的 mode 是 0777,意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod() 页面。 Example #1 mkdir() 例子<?php
    mkdir("/path/to/my/dir", 0700);
    ?> 成功时返回 TRUE, 或者在失败时返回 FALSE. 
      

  2.   

    PHP文件上传全攻略首页、
    这是一篇比较老的文章,其实从情感上来说,我更愿意推荐手册上的介绍,但事实上,在一些PHP群中,有些朋友在问的时候,他们总是想不到翻手册的。嗯,英文的手册确实让人不太舒服,但,不可能在手册一出来就帮你翻译好的吧?事事都去期待别人,还不如把英文好好看看,再者,手册上的英文真的很简单的。
    我不知道你们的手册是怎么样的,版本多少,但是我在我的手册里是有这么一个章节:Chapter 38. Handling file uploads
    POST method uploads   
    Error Messages Explained   
    Common Pitfalls   
    Uploading multiple files   
    PUT method support   一共讲了5种情况,而且对于不能上传大文件也专门做了介绍,他是这么说的:PHP is capable of receiving file uploads from any RFC-1867 compliant browser (which includes Netscape Navigator 3 or later, Microsoft Internet Explorer 3 with a patch from Microsoft, or later without a patch).Related Configurations Note: See also the file_uploads, upload_max_filesize, upload_tmp_dir, post_max_size and max_input_time directives in php.iniPHP also supports PUT-method file uploads as used by Netscape Composer and W3C's Amaya clients. See the PUT Method Support for more details.OK,我知道你们不愿意看,所以我也不多说了,看中文版吧,原文来自于:http://www.sourcejoy.com/php_dev/PHP_upload.html。
    PHP文件上传功能一般都是大家使用事先封装好的函数,要用的时候直接使用已封装的函数就完了,但有时候不能使用封装函数,还真不大能记住PHP的上传相关的东西,在此做个总结,以备后用。1.表单部分
    允许用户上传文件,在HTML表单的声明中要加上一个上传的属性:
    enctype = 'multipart/form-data'
    表单的method必须是POST
    表单选项MAX_FILE_SIZE隐藏域用于限制上传文件大小,它必须放在文件表单元素前面,单位为字节。
    如:
    <form enctype='multipart/form-data' id='aa' name='aaa' method='post' action='xxx.php'>
    <input type='hidden' name='MAX_FILE_SIZE' value='2621114' />
    <input name='upload_file' type='file' />
    </form>2.处理上传文件
    上传时,PHP收到关于该文件的信息数组,这些信息可以在$_FILES这个超级全局数组中找到。
    如:如果表单中的文件输入框名字为upload_file,那么关于该文件的所有信息都包含在数组$_FILES['upload_file']里面。
    如:客户上传了一个“aaa.jpg”的图片数组值如下:
    name "p5pp.jpg" 上传时文件的名字
    type “image/jpeg" 文件类型
    tmp_name "/tmp/phpjksdf" 服务器端的临时文件名
    error 上传错误的返回值
    size 2045 文件实际大小上面数组里面的error会返回不同的常量值,如下:
    UPLOAD_ERR_OK 没有错误发生,文件上传成功
    UPLOAD_ERR_INI_SIZE 文件大小超过了PHP.INI中upload_max_filesize选项限制的值
    UPLOAD_ERR_FORM_SIZE 上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项值。可在程序中检查表单$FILES ['up_file']['size']来处理
    UPLOAD_ERR_PARTIAL 文件只有部分被上传
    UPLOAD_ERR_NO_FILE 用户没有提供任何文件上传
    上传后处理的具体例子:
    if(!move_uploaded_file($_FILES['f']['tmp_name'],"uploads/".$_FILES['f']['name'].".jpg")){
    echo "error";
    }函数:
    move_uploaded_file 移动上传的临时文件到指定的目录下
    例子:
    move_uploaded_file('临时文件名','指定文件路径')is_uploaded_file 判断是否是通过http Post上传的文件
    例子:
    if(!is_uploaded_file($_FILES['f']['tmp_name'])){
    echo '非法';
    }3.相关参数
    PHP上传设计到的php.ini中的参数:
    file_uploads 是否允许上传文件,默认ONupload_tmp_dir 上传文件防止的临时目录,未指定则使用系统默认位置upload_max_filesize 允许上传文件的大小的最大值,默认为2Mpost_max_size 控制采用POST方法进行一次表单提交中PHP所能接受的最大数据量,如果希望用PHP文件上传,则此值要改为比upload_max_filesize要大max_input_time 以秒为单位对通过POST/GET/PUT方式接受数据时间进行限制。memory_limit 为了避免正在运行的脚本大量使用系统内存,PHP允许定义内存使用限额。通过设置此参数来制定单个脚本程序可以使用的最大内存容量,应适当大于post_max_size值max_execution_time 用来设置在强制终止脚本前PHP等待脚本执行完毕的时间,单位秒。次选项可限制死循环脚本,但当存在一个长时间的合法活动时(如:上传大文件),这项功能也会导致操作失败。这样情况下必须考虑将此变量增加。4.考虑多文件上传
    可以利用$_FILES数组就可以轻松实现多文件上传。$_FILES数组可以获取客户端表单里面所有的file域内容,从而获得所有在同一表单上传的文件。5.突破上传的内存限制
    方法一:
    修改php.ini中memory_limit值,改为更大,如 64M
    方法二:
    使用Apache Rewrite方法,动态修改memory_limit的值。首先建立一个.htaccess文件,保存在上传文件程序的 当前目录即可.代码如下:
    php_value memory_limit 100M
    php_value post_max_size 30M
    php_value upload_max_filesize 30M
    php_value max_execution_time 300
    php_value max_input_tim 300
    php_value display_errors On
    ——EOF——
    当然,如果你在这种下也还是看不懂不能理解的话,我也就没有话说喽。
      

  3.   

    控制上传很容易 倒是下载 根本控制不了 服务器怎么控制 client 端的pc啊
      

  4.   

    说白了php上传主要就是靠一个封装的copy()函数.copy函数的原型
    bool copy ( string source, string dest )
    source那个就不用说了,是来自客户端的源.而目标dest,是指服务器上的目标比如c:\aaa\1.txt,具体哪个部门的,把1.txt前的路径事先规定好就是了.如果不指定路径,而仅仅提供一个1.txt作为参数的话,php应该是上传到php.ini里规定的upload文件夹里去了.如果这个文件夹不存在,或者你指定的路径不存在,那就不知道传到哪里去了.
    下载到指定路径,如果摆脱B/S模式的话,客户端使用桌面应用程序应该就可以解决了.不过这应该要比开发纯php的程序难点.
      

  5.   

    CSDN上的高手多啊,并且是那么的热心。谢谢大家在春节期间还抽出时间解答我的问题。很感动。
      谢谢大家了。