php上传表单
Ⅰ php curl 模拟表单数据流multipart/form-data上传文件
在调用公众号接口https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;
上传永久素材文件总是返回 "{\"errcode\":41005,\"errmsg\":\"media data missing\"}"
经过多次测试使用下面的方式,可以正常上传
//调用测试
protected static $url;
protected static $delimiter;
protected static $instance;
public function index()
{
static::$delimiter = uniqid();
$basename = Request::instance()->root();
if (pathinfo($basename, PATHINFO_EXTENSION) == 'php') {
$basename = dirname($basename);
}
$result=$this->wxAddMaterial($token,$basename.'/upload/images/gnlog.jpg','image');
}
// 新增其他类型永久素材
public function wxAddMaterial($token,$filename='',$type='') {
// 设置请求参数
static::$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;
$filePath = str_replace('\\', '/', $filename);
// 发送请求
$imginfo=pathinfo($filePath);
$fields = array(
'media'=>file_get_contents(".".$filePath),
'filename'=>$imginfo["basename"],
);
$res = $this->putPart( $fields);
// 发送请求
return $res;
}
//推送文件流
public function putPart($param) {
$post_data = static::buildData($param);
$curl = curl_init(static::$url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
"Content-Type: multipart/form-data; boundary=" . static::$delimiter,
"Content-Length: " . strlen($post_data)
]);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
//编译请求头格式和数据流
private static function buildData($param){
$data = '';
$eol = "\r\n";
$upload = $param['media'];
unset($param['media']);
foreach ($param as $name => $content) {
$data .= "--" . static::$delimiter . "\r\n"
. 'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n"
. $content . "\r\n";
}
$data .= "--" . static::$delimiter . $eol
. 'Content-Disposition: form-data; name="media"; filename="' . $param['filename'] . '"' . "\r\n"
. 'Content-Type:application/octet-stream'."\r\n\r\n";
$data .= $upload . "\r\n";
$data .= "--" . static::$delimiter . "--\r\n";
return $data;
}
根据自己的实际情况稍作修改
Ⅱ PHP:curl模拟form表单上传文件
需要模拟的就是上面form表单。
curl_setop设置选项
PS:上面例子只有在php5以下版本有效,换言之现在根本没有用 根本没有用 根本没有用 [手动摔桌子],而且现在网上充斥的全是这种过时的失效版本
@字符什么,现在根本没有用誉绝了,不要怀疑你自己,还有网上说只要加上:
就能起效,不用怀疑,这也是没有效的[手动摔桌子],这个选项已经弃用了,现在。
用curlFile代替@,也不需要使用 CURLOPT_SAFE_UPLOAD
用
替拍蔽换
CURLFILE类的详细使用
PS: $path不要使用网络路庆贺姿径 ( http://xxxx/files/img.png ),要使用本地路径(/files/img.png)
Ⅲ PHP上传图片并把图片地址写入表单中!
其实要保存上传的图片地茄察并址并不需要专颤迹门地一个input表单项,只没并要在这个form提交到的后台页面里面做相应处理即可。
你可在后台的表单处理页面里面查找 move_uploaded_file() 这个函数,它的第一个参数是图片的临时文件名,第二个参数是即将保存的地址。只要把这第二个参数保存到数据库即可满足您的要求,并不需要从表单提交一个图片过来再保存。
Ⅳ php批量修改商品价格表单下载与上传功能怎么做
上传成功后,你会返回一个路径到这个页面.这个页面应该有一个隐藏的表单.
然燃并后你点提交的皮并迹时候,判断这个隐藏的表单内容蔽唤是否为空.如果为空就提示他还没上传图片.
你整个的提交.必须是图片上传完毕之后才可以.
你可以去后盾人平台看看,里面的东西不错
Ⅳ php 文件和表单内容一起上传到数据库
<?php
$filename = $_POST['filename'];
$explain = $_POST['explain'];
$upfile = $_FILES['upfile'];
if(is_uploaded_file($upfile['tmp_name']) && $upfile['size'迹雹]>0){
$filepath = './'.$upfile['name'];
move_uploaded_file($upfile['tmp_name'],$filepath);
$res = mysql_query("INSERT INTO 表(filename,explain,filepath) VALUES('蚂州蔽$filename','$explain','$filepath')");
if($res){
echo '添加闷州成功!';
exit();
}
}
?>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p>
<input type="text" name="filename" id="filename" />
</p>
<p>
<input type="text" name="explain" id="explain" />
</p>
<p>
<input type="file" name="upfile" id="upfile" />
</p>
<p>
<input type="submit" name="button" id="button" value="提交" />
</p>
</form>
Ⅵ php上传文件,表单中的name有什么作用
name用来接收表单传野银岩过去的变量。
name="uploadfile" 在php那搏棚边可以用$_FILES['uploadfile'] 来接收。颂御
Ⅶ 一个php表单中先上传文件然后获取路径通过表单上传到数据库
//不要把这个问题想的太复杂,上传文件跟其他数据完全可以一起提交到服务器,为什么一定要先上传图片,返回结果再提交其他字段呢,这不是给自己找麻烦吗:
<formactionmethod='post'>
<inputname='username'type='text'/>
<inputtype='file'name='image'/>
<inputtype='submit'name='submit'/>
<form>
Server.php:
$file=$_FILES['image'];这个就是你上传的文件,先保存在服务器,再和其他字段一起保存到数据库即可
$username=$_POST['username'];
$sql=//...
Ⅷ php中怎样用一个链接来触发表单上传按钮,就是点链接达到表单上传按钮点击的效果
像表单这种东西丛嫌,一般是和js 一起用的,要达到表单上传的效果,可以用js 实现,当点击链接时,提交渗颤手表单即可,洞则form.submit();
Ⅸ PHP实现简单的文本提交表单(可放入图片)
。。。。
插入图片file控件实现的,上传实际上是将图片上传到了服务器上面,然后获得图片存储的路径。数据库存储的不是图片,而是这里的路径。
代码如下:
html:
<form action="你的路径" enctype="multipart/form-data" method=“post”>
<input type="file" value="上传图片" name="pic">
<textarea name="content"></textarea>
</from>
这里提交到php页面,也就是你路径指向的位置:
php:
$file = $_FILES["pic"]["name"]; //提取文件域内容名称,并判断
$path=”aaa/”; //上传路径 .这个路径必须真实存在,否则会出错,或者你判定下这个路径是否存在,如果不存在则生成文件,这里我就不写了。判定图片格式我也没有写,如果你想要,从网上下载很多上传图片的类库,简单方便.
$file2 = $path.$file;//文件将要放到的位置
$result=move_uploaded_file($_FILES["img"]["tmp_name"],$file2); //将临时文件移动到指定目录下
$content = $_POST['content'];
然后插入到数据库中:
insert into 表 (‘pic’,'content') values ('".$file2."','".$content."');
Ⅹ php实现简单的表单文件上传和管理员操作
如果文件类型是.txt,可以直接用file_get_contents()去获取,再echo出来就行了。
如果是图片,岩吵直接在html中添加晌枣毕img标签引入就行了。
其它情况,要看你的文件类型,浏览器宴芹是不是什么文件都可以直接打开的。