
保存比较简单,使用 file_get_contents 和 file_put_contents ,比较麻烦(应该是没想到)的是如何获取类型,这个可以通过响应头来判断,响应头有一个属性 Content-Type ,它就是 mime ,做好 mime 和 文件扩展名的映射,就可以知道文件的扩展名了。下面这个函数可以做个参考:
/保存
@param $url 要保存的链接
@return 保存的字节数,失败则返回 false
/
function saveFile($url)
{
// mime 和 扩展名 的映射
$mimes=array(
'image/bmp'=>'bmp',
'image/gif'=>'gif',
'image/jpeg'=>'jpg',
'image/png'=>'png',
);
// 获取响应头
if(($headers=get_headers($url, 1))!==false)
{
// 获取响应的类型
$type=$headers['Content-Type'];
// 如果符合我们要的类型
if(isset($mimes[$type]))
{
$fileName=uniqid();
$ext=$mimes[$type];
$file="temp/$fileName$ext";
// 获取数据并保存
$contents=file_get_contents($url);
return file_put_contents($file, $contents);
}
}
return false;
}
一般情况应该是路径不对
你的路径还是本地文件的路径,在运行环境中打开的话出不来,即使出来了,那放在别的机器上也是看不到的,你的这些路径最好是在当前服务器指向的文件夹内。如果引用网络上的文件那另当别论
比如这种路径
<img src="__ROOT__/public/home/images/logojpg" alt=""/>
上传模板$this->isadmin改为1,swf2ckeditorjs flashupload方法indexphp改为/indexphp;attachment xjtUploadphp function swfupload注释else第一行就OK了。
以img标签来开头,在网页的主体部分(即HTML的<body>部分)找到你想要插入的位置。
在这里写下<img>标签。这是一个空标签,创建的是被引用图像的占位空间。
同时在HTML中,<img> 标签是没有结束标签的。您需要将插入的放在两个尖括号之中。
示例:<img src="文件路径/名称">
第一步:通过$_FILES获取文件信息。
第二步:指定新文件名称以及路径,并赋值给一个变量。
第三步:通过move_uploaded_file上传文件。
第四步:上传成功后,将数值存入数据库服务器目录即可。
代码如下
1connphp
<
$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;
}
>
2uploadphp
<php
if ($_GET['action'] == "save"){
include_once('connphp');
include_once('uploadclassphp');
$title=$_POST['title'];
$pic=$uploadfile;
if($title == "")
echo"<Script>windowalert('对不起!你输入的信息不完整!');historyback()</Script>";
$sql="insert into upload(title,pic) values('$title','$pic')";
$result=mysql_query($sql,$conn);
//echo"<Script>windowalert('信息添加成功');locationhref='uploadphp'</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>
<td><input name="title" type="text" id="title"></td>
</tr>
<tr>
<td>文件: </td>
<td><label>
<input name="file" type="file" value="浏览" >
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
</label></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="上 传" name="upload"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
3uploadclassphp
<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>您的文件已经上传完毕 上传预览: </center><br><center><img src='$uploadfile'></center>";
echo "<br><center><a href='uploadhtm'>继续上传</a></center>";
}
}
}
>
不只是,网页上的任何路径,都不要使用C:\
之类的路径,你这种路径,表示是在本地磁盘C中的文件
但你的站点根目录是只能读取远程上的文件以及目录本身的文件,比如你的站点是设置在D:\>当然,也可以使用>
以上就是关于PHP 怎么下载没有后缀的图片全部的内容,包括:PHP 怎么下载没有后缀的图片、thinkphp html前台 图片不显示是怎么回事,哪位大神给我解答一下!!、phpcms v9后台上传图片功能前台调用方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)