显示标签为“上传文件”的博文。显示所有博文
显示标签为“上传文件”的博文。显示所有博文

2016年5月7日星期六

文件上传 PHP 总是获取空值的原因

前不久在为公司的项目瓜藤网(http://www.guaten.com/)的后台作一个扩展的时候,商品属性可以上传图片。


发现后台 PHP 获取的文件总是空值,花了很长时间才发现是这个原因:



PHP 能否上传文件以及上传多少个文件,取决于两个值:file_uploads 和 max_file_uploads。

发现在 HTML 文档中 <input type="file"> 标签太多,超过了 php.ini  中的值 max_file_uploads 设置的最大值。只要把 max_file_uploads  调大就行了。


2012年8月31日星期五

PHP 在服务器端用curl_init()上传文件

    在客户端上传文件,这是Web开发经常碰到的情景。这里不再赘述。这里我们要详细阐述的是如何在服务端上传文件到别的服务器。

    这种场景在要同步多台服务器的资源经常遇到,如要把用户上传的图片从一台服务器
上传到其它服务器。

    其实,在服务器端上传文件不是一件很难的事,只要用PHP的curl_init()就可以做到。


<?php

require_once $_SERVER ['DOCUMENT_ROOT'].'/hosts.php';//放置多台服务器的IP

$img_path = $_SERVER ['DOCUMENT_ROOT'].'/upload/test.jpg';//图片的保存路径

$file = array("company_logo"=>'@'.$img_path);//文件路径,前面要加@,表明是文件上传.

foreach($hosts as $host) {

$curl = curl_init();

//处理上传图片的URL,与客户端上传到服务器的原理是一样的
curl_setopt($curl,CURLOPT_URL,'http://'.$host.'/upload.php');

curl_setopt($curl,CURLOPT_POST,1);

curl_setopt($curl,CURLOPT_POSTFIELDS,$file);

curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl,CURLOPT_HEADER,0);

curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, FALSE);

$result = curl_exec($curl); //$result 获取页面信息

curl_close($curl);

}

?>