A. 求PHP上传文件夹的三种解决方案
1 压缩上传(用户把文件夹压缩后上传),
2 input里加这个属性webkitdirectory就是默认可以上传文件夹了。谷歌浏览器可以。其他浏览器好像不行
3 业务上进行优化 如:(上传时还是上传文件,但是需要填写文件夹得名称,上传之后,后台根据文件夹名称,自动创建文件夹)
B. php如何实现文件上传
所谓上传就是把文件从你电脑本地复制到你的项目指定文件夹下。
但这有个中间过程,就是复制到系统指定的临时文件夹生成临时文件。
然后将临时文件复制到你指定的文件夹下。
剩下的就是各种验证了。
给你个图片上传方法
//上传一张图片
$pic = $_FILES['pic'];
function upload($pic){
$tmp_name = $pic['tmp_name'];
$name = $pic['name'];
$type = $pic['type'];
$size = $pic['size'];
if(!is_uploaded_file($tmp_name)) exit('不是上传文件');
//判断是否是图片
$mine = array('image/png','image/jpg','image/gif','image/jpeg');
if(!in_array($type,$mine)) exit('图片格式不正确');
//判断是否有错误码
$error = $pic['error'];
switch ($error) {
case 1:
exit("超出上传文件的最大限制");
case 2:
exit("超出了指定的文件大小");
case 3:
exit("只有部分文件被上传");
case 4:
exit("文件没有被上传");
case 6:
exit("找不到临时文件夹");
case 7:
exit("文件写入失败");
}
echo "================<br/>";
echo "上传文件名称是:".$name."<br/>";
echo "上传文件类型是:".$type."<br/>";
echo "上传文件大小是:".$size."<br/>";
echo "上传后系统返回的值是:".$error."<br/>";
echo "上传文件的临时存放路径是:".$tmp_name."<br/>";
echo"开始移动临时文件".'<br>';
$des_name = 'up/'.mt_rand().time().'.'.basename($type);
$res = move_uploaded_file($tmp_name, $des_name);
if($res){
echo "================<br/>";
echo "上传图片成功".'<br>';
}
}
C. 用PHP控制FTP文件上传
利用PHP,你总是可以有多种方式来完成某个特定的任务。我们就拿文件上传举个例子。当然了,你可以按照传统的方式来使用HTTP文件上传,把文件直接传输到Web服务器磁盘上。沙河电脑培训认为你还可以用更加奇异的方式上传,用FTP协议两步就完成上传:从你的本地硬盘到Web服务器,然后再到FTP服务器。
PHP在本机同时支持FTP和HTTP上传,所以你可以根据自己应用程序的设计需要进行最佳的选择。使用PHP的FTP函数进行文件传输几乎与使用传统的FTP客户端相同——你会看到连函数的名字都和标准的FTP命令类似。
关于HTTP文件上传的文章已经多得满天飞了,这就是为什么本文有必要把注意卖灶烂力放在基于FTP的文件辩首上传上了(但是在后面给出的例子中,两种方式你都会看到)。要注意的是,本教程假设你已经安装好了PHP/Apache,而且HTTP文件上传和FTP的函数都已经激活了。
第一步:确信你拥有连接/上传到FTP服务器的权限
PHP的FTP函数需要客户端-服务器连接,所以你需要在进行文件上传之前登录到目标服务器上。你的第一项任务是确信你已经拥有了完成这项任务的信中漏任书。这一步可能看起来是理所当然的,但是你会惊奇地发现有多少开发人员忘了这么做,结果后来浪费大量的时间来解决因此而出现的问题。
D. 如何实现文件上传功能php后端
后端的主要逻辑顺序基本就是下面的流程
获取文件上传数组 eg. $file = $_FILES['file'];
获取实际文件名eg. $old = $file['name'];
获取扩展名eg. $ext = strrchr($old,'.');
定义一个新文件名(存储的时候不用源文件名,主要是因为可能出现中文以及文件名重复
问题)eg. $new = time().uniqid();
项目文件系统根目录 $file_path = '/var/www/ccc/';
定义一个存储路径(相对系统根目录) eg. $storage = "file/";
移动文件 eg. move_uploaded_file($file['tmp_file'],$file_path.$storage.$new.$ext)
数据库存储你需要记录的信息,比如原文件名、上传时间、路径,你可以存储$storage这个相对路径,因为以后访问,可能需要使用web域名。不过现在一般也不会让人直接访问静态资源,那么权限控制就是另外一回事了
主要的流程就是这些,当然作为项目使用这些还是不够的,还需要异常处理,毕竟这样的流程还是太简陋
E. php上传文件到服务器
1、通过PHP,可以把文件上传到服务器。创建一个文件上传表单,下面这个供上传文件的 HTML 表单:
<html>
<body>
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
</body>
</html>
2、创建上传脚本,命名为"upload_file.php" 文件含有供上传文件的代码:
<?php
if($_FILES["file"]["error"]>0)
{
echo"Error:".$_FILES["file"]["error"]."<br/>";
}
else
{
echo"Upload:".$_FILES["file"]["name"]."<br/>";
echo"Type:".$_FILES["file"]["type"]."<br/>";
echo"Size:".($_FILES["file"]["size"]/1024)."Kb<br/>";
echo"Storedin:".$_FILES["file"]["tmp_name"];
}
?>
注:通过使用 PHP 的全局数组 “$_FILES”,就可以实现从客户计算机向远程服务器上传文件。
F. 如何用PHP做文件上传,和在网页上点击打开Word或Excel文件
<?php
if($submit && $testfile<> "none") {
$path="/home/httpd/html/"; //绝对路径,注意Linux和Windows下面的格式,windows格式为:c:\\apache2\\htdocs\ $filename=$testfile_name;
if (!@($testfile,$path.$filename)) {
echo "复制文件失版败...<br>\n";
exit();
}
@unlink($testfile);
echo "文件上传成功权!地址为:<a href=\"$filename\">下载</a>";
exit;
}
?>
<form action="<?php echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">
<input name="testfile" type="file" size=20 enctype="multipart/form-data">
<input type=submit name=submit value="开始上传">
</form>