PHP 上传文件和读取文件崎岖路
今天php上传文件和读取文件没有搞出来,全靠后来大神来帮忙,总结一下:主要涉及到一下几个方面,在ubuntu下mkdir文件夹的时候要注意权限问题,一般情况下php是以一个较低的权限去执行的,所以如果你所mkdir的位置不对可能是权限不对,这时候你可以到tmp文件下面试一试,如果这里可以的话那说明确实是文件权限的问题,如果真的是权限问题可以有以下解决方法,方法一:chmod 0777 name 这样是给文件夹以所有用户可以访问的权限,但是这样不安全,所以还有方法二:(因为PHP之行的用户组是:www-data,所以下面的用户组名都是www-data )新建一个文件夹 mkdir dir name 然后 sudo chgrp 用户组名 filename 最后 sudo chown 用户组 filename 这样就新建了一个该用户组的文件夹,这样php执行该文件夹下面的所有权限,而其他用非超级权限户组的不能执行。。。这样就可以mkdir和上传文件了。
我写的主要代码如下:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<?
$album ="data/album";//设置一个变量用于存放相册的目录名,这里首先在上面新建的www-data用户组的文件夹data下面,因为这个文件夹是php执行用户的,所以要新建一个文件夹相册album文件夹目录
if(!is_dir($album))//指向的文件夹是否存在如果没有这个目录,就创建这个变量目录
{
mkdir($album);//创建这个文件夹
}
if(isset($_POST["action"]) and $_POST["action"] == "upload")//是否存在约定变量,并且值正确(这里是input type = hidden 穿过来的变量名 action 其值为upload)
{
if(isset($_FILES["file"]["tmp_name"]))//检测$_FILES变量中是否存在数据,这里是传过来的 (input type = file )
{
$filename = $_FILES["file"]["name"];//定义新的文件名
if(move_uploaded_file($_FILES["file"]["tmp_name"],$album."/".$filename))//把上传的临时文件移动到新目录 (两个参数,第一个源文件,第二个目标文件)
{
echo "上传成功!";
}
else
{
echo "上传文件失败!";
}
}
}
?>
<!-- 头和样式设计-->
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html;charset = utf8"/>//乱码就设置charset = utf8
<title>相册</title>
<style>
body{ margin:0px;padding:0px;background-color:#EFEFEF;font-size:12px;}
ul{margin:0px;padding:0px;list-style:none;}
a{color:#333333;text-decoration:none;}
a:hover{color:#999999;}
.ablum_out{width:98% px;margin-left:10px;margin-top:10px}
.ablum_out img{margin:4px;border:#CCC 1px solid; }
.ablum_out li{float:left;width:180px;text-align:center;margin:5px;}
</style>
</head>
<!--供上传文件的HTML表单 -->
<body>
<form action = "" method ="POST" enctype= "multipart/form-data" name="forml" id = "forml"> <!--submit 跳转到该页面从头执行 -->
<label>上传图片
<input type="file" name = "file"/>
</label>
<label>
<input type="submit" name="submit" value = "submit"/>
<input Type="hidden" name="action" value= "upload"/>//传递参数,不能被用户知道
</label>
</form>
<!-- -->
<hr size= "1"/><!--水平线-->
<div class = "ablum_out"><!--定义文档中的分区或节-->
<ul> <!--标签定义无序列表-->
<?
$dh = dir($album);//打开一个目录句柄,并返回一个对象。这个对象包含三个方法:read() , rewind() 以及 close()。若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。
echo "相册目录:".$dh->path."<br>";
while(false !==($file = $dh->read()))
{
if( $file != "." and $file != "..")
{
echo '<li> <a href="'.$album."/".$file.'" target ="_blank"> <img src = "'.$album."/".$file.'" width = "160" height = "120" border = "0"/> <br/>'.$file.'</a></li>';
}
}
$dh->close();
?>
</ul>
</div>
<br/><!--只是简单地开始新的一行-->
</body>
</html>
//初学者有一个大神带那是多么幸福的事情呀,你能够很快的成长起来。。。
PHP 上传文件和读取文件崎岖路的更多相关文章
- .Net neatupload上传控件实现文件上传的进度条
1. 引入bin文件 (可以到neatupload官网下载,也可以到教育厅申报系统中找) 2. 将控件加入到工具栏,在工具栏中点鼠标右键,如图: 3. 加入neatuplaod这个文件夹(可以到nea ...
- django设置并获取cookie/session,文件上传,ajax接收文件,post/get请求及跨域请求等的方法
django设置并获取cookie/session,文件上传,ajax接收文件等的方法: views.py文件: from django.shortcuts import render,HttpRes ...
- HTTP文件上传服务器-支持超大文件HTTP断点续传的实现办法
最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传.笔者在以前的博客如何实现支持大文件的高性能HTTP文件上传服务器已经介绍了实现大文件上传的一些基本 ...
- 【转载】文件上传那些事儿,文件ajax无刷上传
导语 正好新人导师让我看看能否把产品目前使用的FileUploader从老的组件库分离出来的,自己也查阅了相关的各种资料,对文件上传的这些事有了更进一步的了解.把这些知识点总结一下,供自己日后回顾,也 ...
- PHP上传(单个)文件示例
通过 PHP,可以把文件上传到服务器. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: <html> <body> &l ...
- SharePoint 2010 ——自定义上传页面与多文件上传解决方案
最近项目遇到一个很麻烦的问题,原以为很容易解决,结果搞了那么久,先开个头,再慢慢写 SharePoint 2010 ——自定义上传页面与多文件上传解决方案 1.创建Sharepoint空白项目,创建应 ...
- echo "不允许上传该类型的文件
<?php教程 // 上传设置 $maxsize=10002400; //最大允许上传的文件大小 $alltype=array(".php"," ...
- php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特 色),学php的人都知道文件上传怎么做,但很多人在编程中 ...
- ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug
ASP无惧上传类不能上传中文双引号文件及ASP函数InStr存在bug 近日发现eWebEditor V2.8 asp 版本上传文件文件名不能包含中文双引号,发现eWebEditor使用ASP“无惧上 ...
随机推荐
- [USACO2003][poj2110]Mountain Walking(二分答案+bfs)
http://poj.org/problem?id=2110 题意:给你一个n*n矩形(n<=100),每个位置上都有一个数字代表此处山的高度,要从(1,1)走到 (n,n),要求一条路径使得这 ...
- 标准I/O
在程序运行时,会默认为我们打开三个流:标准输入流.标准输出流.标准出错流. 标准输入流一般对应我们的键盘 标准输出流一般对应显示器 标准出错流一般也对应显示器 1.标准输入流 在标准I/O中,java ...
- 每天一个linux命令(44):ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- 用CSS做长度超过长度显示‘...’,当鼠标放上时显示全部内容
<!DOCTYPE html> <html> <head> <meta name="author" content="Yeeku ...
- tomcat 配置
tomcat 安装完成之后,我们可以在器目录先看到有如下结构
- Cocos2d-X3.0 刨根问底(九)----- 场景切换(TransitionScene)源码分析
上一章我们分析了Scene与Layer相关类的源码,对Cocos2d-x的场景有了初步了解,这章我们来分析一下场景变换TransitionScene源码. 直接看TransitionScene的定义 ...
- 【poj3177】 Redundant Paths
http://poj.org/problem?id=3177 (题目链接) 题意 给出一个n个节点m条边的无向图,求最少连几条边使图中没有桥. Solution 我们可以发现,用最少的边使得图中没有桥 ...
- POJ1941 The Sierpinski Fractal
Description Consider a regular triangular area, divide it into four equal triangles of half height a ...
- poj1056 (Trie入门)寻找字符串前缀
题意:给你一堆字符串,问是否满足对于任意两个字符串a.b,a不是b的前缀 字典树==前缀树==Trie树 trie入门题,只用到了insert和query操作 #include <cstdio& ...
- DLUTOJ 1331 Maximum Sum
传送门 Time Limit: 1 Sec Memory Limit: 128 MB Description You are given an array of size N and anothe ...