服务器端调用本地电脑的php代码程序

Strongstudy 发布于 2016/06/15 15:24
阅读 547
收藏 0
PHP

制作了一个简单的图片上传程序,并放在服务器上,如下:

HTML代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>图片上传</title>
</head>
<body>
    <form action="save.php" method="post" enctype="multipart/form-data">
        <table>
            <tr>
                <td>
                    <input type="file" name="file" id="file">
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" name="mac" id="mac" value="请输入机器序号"onfocus="if (value =='请输入机器序号'){value =''}"onblur="if (value ==''){value='请输入机器序号'}">
                </td>
            </tr>
            <tr>
                <td>
                    <input type="submit" name="submit" value="上传" onclick="return checknull();">
                </td>
            </tr>
        </table>
    </form>
    <script type="text/javascript">
    function checknull(){
        if(!document.getElementById('file').value){
            alert('请上传图片');
            return false;
            }
        if(document.getElementById('mac').value =='' || document.getElementById('mac').value=='请输入机器序号') {
            alert('请输入机器序号');
            return false;
            }

        return true;
    }
    </script>
</body>
</html>

PHP代码如下:


<?php
    //想要连接的PC端电脑IP
    $client = "clientip";
    if ($_FILES["file"]["error"] > 0) {
        echo "Error: " . $_FILES["file"]["error"] . "<br />"; //由表单file input的到$_FILES的值
    }else{
        //获取图片信息
        $fileinfo =getimagesize($_FILES["file"]["tmp_name"]);
        //正则表达式
        $patten = '/^image\/(\w+)$/';
        //匹配字符串
        $preg =preg_match($patten, $fileinfo['mime'],$array);
        //判定上传文件是否为图片
        if(!$preg){
            echo "<meta charset='utf-8'>";
            echo "请上传图片,格式可以是:'GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP'中的任意一种类型";
        }else{
            $path = $_FILES["file"]["tmp_name"];
            //将图片转为二进制数据流
            $file_string = file_get_contents($path);
            //临时文件名称并通过URL传回本地
            $file_save_name = 'tem.'.$array[1];
            $url='http://'.$client.'/client/getpic.php?filename='.$file_save_name;
            //保存文件
            file_put_contents($file_save_name, $file_string);
        }
    }
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>确认上传</title>
</head>
<body>
    <form action="<?php echo $url?>" method="post">    
        <img src="<?php echo $file_save_name?>" name="pic">
        <input type="submit" name="submit" value="确认">
    </form>
</body>
</html>

我在本地的WWW目录下面放上的PHP代码用于将服务器上刚才保存的图片下载到本地,代码如下:

<?php
    //获取文件名
    //$filename = $_GET['filename'];
    $filename = "tem.png";
    //服务器地址
    $server = "serverpath";
    $url = "http://".$server."/uploady/".$filename;
    //虚拟数据流页面并将文件转为数据流
    ob_start();
    readfile($url);
    $file_string = ob_get_contents();
    ob_end_clean();
    //保存文件到本地
    if($file_string){
        file_put_contents($filename, $file_string);
    }else{
        echo '获取失败';
    }
?>


可以看到我在服务端有一个确认按钮调用本地电脑的PHP代码,这个在局域网上是可以实现的,但是当我将本地这个电脑移动到异地,连接到网络后,我应该怎么填写这个本地PC的IP,才能让我的服务器使用它上面的代码,完成图片自动保存到该电脑上呢?

加载中
0
纵使有花兼明月何堪无酒亦无人
纵使有花兼明月何堪无酒亦无人
我理解是你吧这个装有这套代码的电脑搬到了其他地方,然后不知道怎么打开这个电脑上面的网站了。你换了地方,电脑的内网IP可能就变了,所以还想在局域网内查看的话需要知道这个电脑的IP。可以打开CMD命令输入 ipconfig -all  查看电脑的IP地址
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部