Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304416
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站网址导航为大家免费提供关于网站编程方面的知识。

模拟php curl向远程网站服务器上传文件iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

  • 本篇文章的具体介绍如下请大家仔细看

总体架构:iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

前端web网站服务器 数据库网站服务器 文件转换网站服务器 文件存储网站服务器iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

总体描述:iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

前端web页面上传文件,后端程序将数据写入mysql,并将文件发送到文件网站服务器,文件网站服务器定时查询mysql取出需要转换文件列表,用php脚本调用linux命令执行转换文件操作,转换完成后将数据库对应记录更新,并将文件发送到文件存储网站服务器。iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

一.将文件发送到文件转换网站服务器iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

  1. web端

php通过curl发送文件iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

  1. 文件转换网站服务器

搭建一个web服务,只需要2个东东:upload.php、uploads文件夹iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

upload.php具体相关代码如下如下:
 iQrAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

<?php
define('MY_ROOT', str_replace('/upload.php', '', str_replace('\\', '/', __FILE__)));
if(isset($_FILES)){
    if(isset($_FILES['file'])){
        try {
            move_uploaded_file($_FILES['file']['tmp_name'], MY_ROOT.'/uploads/'.$_FILES['file']['name']);
            @unlink($GLOBALS[$_FILES['file']['tmp_name']]);
            echo json_encode(array('success'=>TRUE,'error'=>''));
        } catch (Exception $exc) {
            //echo $exc->getTraceAsString();
            echo json_encode(array('success'=>FALSE,'error'=>'移动文件失败'));
        }
    }
}
?>

二.文件转换php脚本核心具体相关代码如下如下

<?php
date_default_timezone_set('PRC');
error_reporting(E_ALL);

/* 取得当前所在的根目录 */
define('MY_ROOT', str_replace('/setup.php', '', str_replace('\\', '/', __FILE__)));
include_once(MY_ROOT."/include/lib_mysql.php");//mysql操作类
require_once(MY_ROOT.'/include/aliyun/aliyun.php');
include_once(MY_ROOT."/config.php");
use \Aliyun\OSS\OSSClient;

$client = OSSClient::factory(array(
    'AccessKeyId' => $AccessKeyId,
    'AccessKeySecret' => $AccessKeySecret,
));





$db = new lib_mysql($db_host, $db_user, $db_pass, $db_name);

while (true){

$sql = "select aid,softlinks from t_addonbook where wwk=0 ";
$list = $db->getAll($sql);


    //循环处理需要转换的文档
    foreach($list as $item){
        //获取源文档的上传路径
        $local_path = $item['softlinks'];//{dede:link islocal='1' text='本地下载'} /uploads/userup/1088/9-30.xls {/dede:link}
        $tmp_str = strpos($local_path, '}') 1;
        $local_path = substr($local_path, $tmp_str);//去除 {dede:link islocal='1' text='本地下载'}
        $tmp_str = strpos($local_path, '{/dede:link}');
        $local_path = substr($local_path, 0, $tmp_str);//去除 {/dede:link}
        $local_path = str_replace(" ", "", $local_path);
        $local_file_name = basename($local_path);//文件名 扩展名
        $file_name_arr = explode(".", $local_file_name);
        $file_name = $file_name_arr[0];
        $file_type = end($file_name_arr);
        $file_type = strtolower($file_type);
        $tmp_name_str = strpos($local_path, $local_file_name);
        $local_path = substr($local_path, 0,$tmp_name_str);//去除文件名
        if(file_exists($upload_path.$local_file_name)){
            if(copy($upload_path.$local_file_name, $convert_path.$local_file_name)){//将文件
                //将文件转换为pdf
                $start = time();

                if($file_type=='txt'){
                     if(!isUTF8($convert_path.$local_file_name)){//若不是UTF8编码,则转码
                         $temp = exec("enca -i ".$convert_path.$local_file_name);
                         if(strrpos($temp, '???') === false){//是gbk
                             exec("iconv -f gbk -t utf-8 ".$convert_path.$local_file_name." -o ".$convert_path.$local_file_name);//txt 转码 
                         }else{
                             exec("iconv -f unicode -t utf-8 ".$convert_path.$local_file_name." -o ".$convert_path.$local_file_name);//txt 转码 
                         }
                     }
                }

                if($file_type!='pdf'){
                    exec($openoffice_path." -f pdf ".$convert_path.$local_file_name);//转换为pdf
                }
                //生成缩略图
                exec("cd ".$pdfimg_path);
                $temp = exec("cd ".$pdfimg_path."&& ./pdf2img -f 1 -w 150 -h 200 ".$convert_path.$file_name.".pdf ".$convert_path.$file_name.".jpg");
                //生成swf
                $temp = exec($swftools_path." -f -T 9 -t ".$convert_path.$file_name.".pdf -o ".$convert_path.$file_name.".swf");
                 if(strrpos($temp, 'NOTICE') === false){//第一种那个方式转换失败
                     //第二种转换方式
                     $temp = exec($swftools_path." -f -T 9 -t -s poly2bitmap ".$convert_path.$file_name.".pdf -o ".$convert_path.$file_name.".swf");
                 }
                echo "1->".$item['aid'].' : ';print_r($temp);echo "\n";
                //获取pdf总页数
                $pagenum = getPageTotal($convert_path.$file_name.".pdf");

                if(!file_exists($convert_path.$file_name.".jpg")){//jpg
                    exec($mv_path."mv ".$convert_path.$file_name."0001.jpg ".$convert_path.$file_name.".jpg");
                }
                //将swf,jpg和源文件拷贝到文件网站服务器
                /*上传swf*/
                $client->putObject(array(
                    'Bucket' => 'bucket-wenku',
                    'Key' => $file_name.'.swf',
                    'Content' => fopen($convert_path.$file_name.'.swf', 'r'),
                    'ContentLength' => filesize($convert_path.$file_name.'.swf'),
                ));
                /*上传jpg*/
                $client->putObject(array(
                    'Bucket' => 'bucket-wenku',
                    'Key' => $file_name.'.jpg',
                    'Content' => fopen($convert_path.$file_name.'.jpg', 'r'),
                    'ContentLength' => filesize($convert_path.$file_name.'.jpg'),
                ));
                /*上传源文件*/
                $client->putObject(array(
                    'Bucket' => 'bucket-wenku',
                    'Key' => $local_file_name,
                    'Content' => fopen($convert_path.$local_file_name, 'r'),
                    'ContentLength' => filesize($convert_path.$local_file_name),
                ));
                //写入数据库
                //$onlineviewurl = '/swf/'.$file_name.'.swf';
                $onlineviewurl = '/load.php?file='.$file_name.'.swf';
                $sql = "update t_addonbook set onlineviewurl='$onlineviewurl',wwk=1,pagenumber=$pagenum where aid=$item[aid]";
                $db->query($sql);
                //$litpic = '/swf/'.$file_name.'.jpg';
                $litpic = '/load.php?file='.$file_name.'.jpg';
                $sql = "update t_archives set litpic='$litpic' where id=$item[aid]";
                $db->query($sql);


                //删除文件
                exec("rm -rf ".$convert_path.$file_name."*");
                //删除上传目录文件
                exec("rm -rf ".$upload_path.$local_file_name);
            }else{
                //复制文件失败
            }
        }else{
            //写入错误日志
        }
        sleep(1);
    }
    echo "5\n";
    sleep(5);
}




/**
    * 获取PDF的页数
    */
function getPageTotal($path){

        // 打开文件
        if (!$fp = @fopen($path,"r")) {
            return false;
        }
        else {
            $max=0;
            while(!feof($fp)) {
                $line = fgets($fp,255);
                if (preg_match('/\/Count [0-9] /', $line, $matches)){
                    preg_match('/[0-9] /',$matches[0], $matches2);
                    if ($max<$matches2[0]) $max=$matches2[0];
                }
            }
            fclose($fp);
            // 返回页数
            return $max;
        }

  }

  function isUTF8($str)
  {
      $str1 = file_get_contents($str);
      $code = chkCode($str1);
      if($code=='UTF-8'){
          return TRUE;
      }else{
          return FALSE;
      }
  }
  function chkCode($string){
    $code = array('UTF-8','GBK','GB18030','GB2312');
    foreach($code as $c){
     if( $string === iconv('UTF-8', $c, iconv($c, 'UTF-8', $string))){
      return $c;
     }
    }
    return "no";
}
?>

原文转载自:http://www.9958.pw/post/wenku

关于网站编程方面的知识就说道这里了,希望能够对大家有作用。,centos nginx mysql php openoff

分享到:

  admin

注册时间:

网站:0 个   APP:3 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304416

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市