php文件上传表单摘自drupal的代码
前端之家收集整理的这篇文章主要介绍了
php文件上传表单摘自drupal的代码,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
drupal文件上传表单的例子
<div class="codetitle"><a style="CURSOR: pointer" data="94172" class="copybut" id="copybut94172" onclick="doCopy('code94172')"> 代码如下:
<div class="codebody" id="code94172">
function upload_form() {
$form = array();
// If this #attribute is not present,upload will fail on submit
$form['#attributes']['enctype'] = 'multipart/form-data';
$form['file_upload'] = array(
'#title' => t('Upload file'),
'#type' => 'file',
);
$form['submit_upload'] = array(
'#type' => 'submit',
'#value' => 'Submit'
);
return $form;
}
function upload_submit($form,&$form_state) {
$validators = array();
$dest = file_directory_path();
$file = file_save_upload('file_upload',$validators,$dest);
//$file will be 0 if the upload doesn't exist,or the $dest directory
//isn't writable
if ($file != 0) {
$file->filepath; //
文件相对路径
}
else {
form_set_error('myform',t("
Failed to save the file."));
}
}
在
PHP网站开发中,
PHP程序如何实现
文件上传功能,一直是新手的课题。而且
文件上传功能一般都用得着,比如
图片上传。今天就结合具体
代码实例和详细注解和大家
分享如何编写
PHP文件上传代码,适合
PHP初学者学习。
PHP代码实例主要讲述的是
图片上传,看懂程序后你可以
修改相关
文件类型就可以实现其他
文件的
上传功能。
编程环境
PHP5.2.4,基本上
PHP4.3以上版本,此
代码都可以使用
准备工作
检查upload_tmp_dir项
如果
PHP的开发环境是自行搭建的,你需要在编写
文件上传程序前编辑
PHP.ini
文件,找到并编辑upload_tmp_dir选项,此项用来设定
文件上传至服务器时的临时
文件夹,比如upload_tmp_dir = E:/
PHPos/uploads,然后再重启Apache。如果
PHP的开发环境使用的是傻瓜式一键安装包,一般upload_tmp_dir都是设定好了的,你也可以用
PHPinfo()
函数查看下配置。
编写一个upload
文件,设定
文件上传表单
<div class="codetitle">
<a style="CURSOR: pointer" data="85886" class="copybut" id="copybut85886" onclick="doCopy('code85886')"> 代码如下: <div class="codebody" id="code85886">
<form enctype="multipart/form-data" action="upload.
PHP" method="post">
<input type="hidden" name="max_file_size" value="100000">
<input name="userfile" type="file">
<input type="submit" value="
上传文件">
注意
1、表单中enctype=”multipart/form-data”必须指定,以便让服务器知道
文件带有常规的表单信息。
2、必须有一个可以设置
上传文件最大长度的表单区域,即允许
上传文件的最大值(按字节计算),它是隐藏值域,即max_file_size,通过设置其Value(值)可以限制
上传文件的大小,避免
用户在花时间等待
上传大
文件之后才发现该
文件太大了的麻烦。但是一般别人可以绕过这个值,所以安全起见,最好是在
PHP.ini
文件中配置upload_max_filesize选项,设定
文件上传的大小,默认是2M。
文件上传程序
<div class="codetitle">
<a style="CURSOR: pointer" data="63860" class="copybut" id="copybut63860" onclick="doCopy('code63860')"> 代码如下: <div class="codebody" id="code63860">
function uploadfile($type,$name,$ext,$size,$error,$tmp_name,$targetname,$upload_dir)
{
$MAX_SIZE = 2000000;
$FILE_MIMES = array('image/pjpeg','image/jpeg','image/jpg','image/gif','image/png');
$FILE_EXTS = array('.jpg','.gif','.png','.JPG','.GIF','.PNG');
$file_path = $upload_dir.$targetname;
if(!is_dir($upload_dir))
{
if(!mkdir($upload_dir))
die("
文件上传目录不存在并且无法创建
文件上传目录");
if(!chmod($upload_dir,0755))
die("
文件上传目录的权限无法设定为可读可写");
}
if($size>$MAX_SIZE)
die("
上传的
文件大小超过了规定大小");
if($size == 0)
die("请选择
上传的
文件");
if(!in_array($type,$FILE_MIMES) || !in_array($ext,$FILE_EXTS))
die("请
上传符合要求的
文件类型");
if(!move_uploaded_file($tmp_name,$file_path))
die("复制
文件失败,请重新
上传");
switch($error)
{
case 0:
return ;
case 1:
die("
上传的
文件超过了
PHP.ini 中 upload_max_filesize 选项限制的值");
case 2:
die("
上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值");
case 3:
die("
文件只有部分被
上传");
case 4:
die("没有
文件被
上传");
}
}