本文目录一览:
- 1、php文件下载 先选择保存路径
- 2、如何让php拥有root的权限?
- 3、php如何把创建的文件自动存到指定的目录?
- 4、thinkphp生成文件是root不是www
- 5、PHP怎么把图片数据保存为jpg图片到服务器目录
php文件下载 先选择保存路径
PHP 文件下载代码示例如下:
?php
//调用下载函数
downloadFile("index.html");
//定义下载函数,$fname参数为下载文件名
function downloadFile($fname){
$rename = $fname;
$filename = $fname;
$file_path = $_SERVER["DOCUMENT_ROOT"]."/oop/".$filename;
$file = @fopen($file_path, "r");
if (!$file) {
exit('sorry,no file!');
}
set_time_limit(0);
$ua = $_SERVER["HTTP_USER_AGENT"];
$encoded_filename = urlencode($rename);
$encoded_filename = str_replace("+", "%20", $encoded_filename);
header('Content-Type: application/octet-stream');
if (preg_match("/MSIE/", $ua)) {
header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
} else if (preg_match("/Firefox/", $ua)) {
header('Content-Disposition: attachment; filename*="utf8\'\'' . $rename . '"');
} else {
header('Content-Disposition: attachment; filename="' . $rename . '"');
}
while (!feof($file)) {
echo fread($file, 50000);
}
fclose($file);
exit;
}
?
如何让php拥有root的权限?
在PHP中运行只有root用户才可以运行的外部程序,一直是个老问题,用常规的办法很难实现。这是因为一般情况下,PHP是作为APACHE的一个模块的,也就是说,PHP是APACHE的一部分,而APACHE除了suEXEC机制外,是不能以不同的用户ID来执行命令的,但suEXEC机制只能CGI有效。 网上曾经有一篇文章,说用调用"su - -c COMMAND"可以实现,但经过多次试验,发现不行,因为su命令必须在STDIN上输入root的密码。 要注意的是,安装和配置super,都要以root身份来进行。 第一步,切换到root下 第二步,安装super 先到下载super-3.14.0-1.i386.rpm。这是一个RPM文件,其它包括了两个工具:setuid和super,以及它们的文档和man手册。用下面的命令将它安装到系统中: % rpm -Uvh super-3.14.0-1.i386.rpm 你还可以用这个命令来查看这个RPM中的文件: % rpm -qpl super-3.14.0-1.i386.rpm 从结果可以看到,两个工具都将被安装到/bin目录下。 第三步,配置super super的配置文件是/etc/super.tab。这是一个文本文件,格式也比较复杂。不过,我们这里只要很简单的加上几行就可以了。至于详细的说明,可以通过man super.tab来查看。 假设运行Apache的用户是nobody,我们欲通过super来增加系统用户(调用useradd命令),那么我们只要在super.tab文件中加入以下这行: auser /sbin/useradd nobody,hunte 第一段是super能够识别的命令的别名;第二段是该别名所对应的系统命令的全路径;第三段是可以运行该命令的用户列表,用逗号分隔。这里除了nobody外,还一个叫hunte的普通用户,是用于下面的测试。当然,你应该用你系统中有的任意一个普通用户。 至此,super的配置就算好了。 第四步,测试 以第三步中指定的非nobody用户登录,运行: % /bin/super auser testuser % cat /etc/passwd grep testuser 命令来验证一下。 第五步,在PHP中调用该命令 下面是PHP代码:?if ($username){//应该检查新用户是否已经存在 echo '正在创建用户$username...'; system(escapeshellcmd("/bin/super auser $username"));}?使用super,使得在PHP中以root身份运行外部命令不再是难事。试试看吧。 chpasswd.cgi是一个修改linux用户密码的cgi程序,弥补更改密码需要两次输入密码的缺陷-phproot进程保存文件
php如何把创建的文件自动存到指定的目录?
对文件的操作,最好使用绝对路径,否则你会搞乱的
好的习惯是,定义一个
define(ROOT,dirname(__FILE__));//当前文件的物理地址(结果可能是D:\\html\\)
然后写保存文件的时候,你的fname应该是ROOT . '/' . $filename;
你的情况,可能是ROOT . '/myhtml/' . date('Y-m-d') . rand(0,999) . '.html';
如果输出它,它可能是d:\wwwroot\myhtml\2009-10-13\333.html
$of = fopen($fname,'w');
或者在php5下直接 file_put_contents($fname,$content);
thinkphp生成文件是root不是www
因为这个自动任务是root用户执行。ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,因为这个自动任务是root用户执行,不是www,ROOT是一种存在于UNIX系统(如AIX、BSD等)和类UNIX系统。-phproot进程保存文件
PHP怎么把图片数据保存为jpg图片到服务器目录
第一步:通过$_FILES获取文件信息。
第二步:指定新文件名称以及路径,并赋值给一个变量。
第三步:通过move_uploaded_file上传文件。
第四步:上传成功后,将数值存入数据库服务器目录即可。
代码如下
1.conn.php
?
$host="localhost"; //数据库服务器名称
$user="root"; //用户名
$pwd="1721"; //密码
$conn=mysql_connect($host,$user,$pwd);
mysql_query("SET
character_set_connection=gb2312,
character_set_results=gb2312,
character_set_client=binary",$conn);
if ($conn==FALSE)
{
echo "center服务器连接失败!br请刷新后重试。/center";
return true;
}
$databasename="database";//数据库名称
do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);
if ($con==FALSE)
{
echo "center打开数据库失败!br请刷新后重试。/center";
return true;
}
?
2.upload.php
?php
if ($_GET['action'] == "save"){
include_once('conn.php');
include_once('uploadclass.php');
$title=$_POST['title'];
$pic=$uploadfile;
if($title == "")
echo"Scriptwindow.alert('对不起!你输入的信息不完整!');history.back()/Script";
$sql="insert into upload(title,pic) values('$title','$pic')";
$result=mysql_query($sql,$conn);
//echo"Scriptwindow.alert('信息添加成功');location.href='upload.php'/Script";
}
?
html
head
title文件上传实例/title
/head
body
form method="post" action="?action=save" enctype="multipart/form-data"
table border=0 cellspacing=0 cellpadding=0 align=center width="100%"
tr
td width=55 height=20 align="center" /TD
td height="16"
table width="48%" height="93" border="0" cellpadding="0" cellspacing="0"
tr
td标题:/td
tdinput name="title" type="text" id="title"/td
/tr
tr
td文件: /td
tdlabel
input name="file" type="file" value="浏览"
input type="hidden" name="MAX_FILE_SIZE" value="2000000"
/label/td
/tr
tr
td /td
tdinput type="submit" value="上 传" name="upload"/td
/tr
/table/td
/tr
/table
/form
/body
/html
3.uploadclass.php
?php
$uploaddir = "upfiles/";//设置文件保存目录 注意包含/
$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型
$patch="upload/";//程序所在路径
//获取文件后缀名函数
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}
//生成随机文件名函数
function random($length)
{
$hash = 'CR-';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
$a=strtolower(fileext($_FILES['file']['name']));
//判断文件类型
if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type))
{
$text=implode(",",$type);
echo "您只能上传以下类型文件: ",$text,"br";
}
//生成目标文件的文件名
else{
$filename=explode(".",$_FILES['file']['name']);
do
{
$filename[0]=random(10); //设置随机数长度
$name=implode(".",$filename);
//$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile))
{
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
echo "上传失败!";
}
else
{//输出图片预览
echo "center您的文件已经上传完毕 上传图片预览: /centerbrcenterimg src='$uploadfile'/center";
echo "brcentera href='upload.htm'继续上传/a/center";
}
}
}
?