这部分为导入txt文本文件,存放在服务器然后返回txt文本的内容到前台进行相应操作
前台html代码
<div id="coordinate_div">
       <div class="file-box">
           <form action="" method="post" enctype="multipart/form-data">
               <input type='text' name='textfield' id='textfield' class='txt' />
               <input type='button' class='btn' value='浏览...' />
               <input type="file" name="fileField" class="file" id="fileField" size="28" onchange="document.getElementById('textfield').value=this.value" />
               <input type="submit" name="submit" class="btn" value="导入" id="input" />
           </form>
         </div>
       </div>
</div>
javascript部分函数完成于后台的交互
 //后台导入文件读取内容
    $("#input").click(function() {
        var arrjson = new Array();//接收数据
        var url ="http://localhost:8081/hangshe/index.php?option=com_nasm_functiondb&task=getTxtData";//地址
        //回调函数以及返回值
        var callback = function(json){
            arrjson = json//接收这个数据
        }
        $.post(url,callback)//Ajax的post方法(url为后台php函数的调用路径,callback即获取后台返回的数据函数,还有其他参数此处为用到不再过多解释)
    });
 
 
//后台php函数
 function getTxtData()
    {
        //$txt_path = $this->getPath();//路径
        $txt_path = "D:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\hangshe\upload\getname.txt";//路径
        $handle = fopen ($txt_path, "rb");//打开文件
        $contents = "";//定义变量
        while (!feof($handle)) {
            $contents .= fread($handle, 1024);//读取
        }
        //echo($contents );//输出
        fclose($handle);//关闭
        $data = explode("|","$contents");//分割为数组
        header('Content-Type:application/json; charset=utf-8');
        echo json_encode($data);//输出
        return json_encode($data);//返回为json
    }
//存储文件的函数
 function getPath(){
        //文件存储路径
        $file_path="upload/";
        //664权限为文件属主和属组用户可读和写,其他用户只读。
        if(is_dir($file_path)!=TRUE) mkdir($file_path,0664) ;
        //定义允许上传的文件扩展名
        $ext_arr = array("txt", "xlsx", "shp");
 
        if (empty($_FILES) === false) {
 
            if($_FILES["file"]["error"] > 0){
                exit("文件上传发生错误:".$_FILES["fileField"]["error"]);
            }
 
            //获得文件扩展名
            $temp_arr = explode(".", $_FILES["fileField"]["name"]);
            $file_ext = array_pop($temp_arr);
            $file_ext = trim($file_ext);
            $file_ext = strtolower($file_ext);
            //检查扩展名
            if (in_array($file_ext, $ext_arr) === false) {
                exit("上传文件扩展名是不允许的扩展名。");
            }
            //重命名文件 以时间戳重命名文件
            $new_name = time().".".$file_ext;
            //将文件移动到存储目录下
            move_uploaded_file($_FILES["fileField"]["tmp_name"],"$file_path" . $new_name);
            return "upload/"+$new_name;
        } else {
            echo "无正确的文件上传";
            return;
        }
    }

前台html与后台php通信(上传文件)的更多相关文章

  1. 记录一次node中台转发表单上传文件到后台过程

    首发掘金 记录一次node中台转发表单上传文件到后台过程 本篇跟掘金为同一个作者leung   公司几个项目都是三层架构模式即前台,中台(中间层),后台.前台微信端公众号使用vue框架,后台管理前端使 ...

  2. 图片上传和显示——上传图片——上传文件)==ZJ

    http://www.cnblogs.com/yc-755909659/archive/2013/04/17/3026409.html aspx上传 http://www.cnblogs.com/mq ...

  3. bootstrap fileinput 上传文件

    最近用到文件上传功能, 说实话:以前遇到过一次,COPY了别人的代码 结束! 这次又要用,可是看到别人很酷的文件上传功能,心痒了! 好吧.简单的办法,找控件: bootstrap fileinput ...

  4. Linux下开发python django程序(设置admin后台管理上传文件和前台上传文件保存数据库)

    1.项目创建相关工作参考前面 2.在models.py文件中定义数据库结构 import django.db import modelsclass RegisterUser(models.Model) ...

  5. uploadify前台上传文件,java后台处理的例子

    1.先创建一个简单的web项目upload (如图1-1) 2.插件的准备 (1).去uploadify的官网下载一个uploadify插件,然后解压新建个js文件夹放进去(这个不强求,只要路径对了就 ...

  6. Angular4 后台管理系统搭建(10) - 做一个通用的可跨域上传文件的组件

    写的很慢,不知不觉这是第十篇了.但是我其他事情太多,只能抽空写下.现在angular4或angular2流行的上传方式是ng2-file-upload.它的功能很强大.但是我没有配置成可以跨域上传的. ...

  7. Springboot第三篇:与前端fetch通信(关于前端传输json数据上传文件等等前后端的处理)

    关于前端接口传递的方法,推荐按以下使用: 若要在服务器上创建资源,推荐使用POST方法 若要检索某个资源,推荐使用GET方法 若要更新资源,推荐使用PUT方法 若要删除某个资源,推荐使用DELETE方 ...

  8. app端上传文件至服务器后台,web端上传文件存储到服务器

    1.android前端发送服务器请求 在spring-mvc.xml 将过滤屏蔽(如果不屏蔽 ,文件流为空) <!-- <bean id="multipartResolver&q ...

  9. 很方便的后台ajax上传文件

    <a href="javascript:void(0);" url="{:U('teacherd?id='.$vo['id'])}" class=&quo ...

随机推荐

  1. listener、context、filter、servlet及其加载顺序

    首先说加载顺序:context-param—>listener —> filter —> servlet 这四类加载顺序与配置顺序无关,对于每一类内部的加载顺序,与配置顺序有关: l ...

  2. sql server 的datediff函数

    这两天要把一个sqlserver数据库的程序改成oracle的,发现两个数据库之间的函数很多不一样.sqlserver的数据库中的DateDiff 函数用法解释如下: 描述 返回两个日期之间的时间间隔 ...

  3. 初学.net 网页打开过程

    一个网页打开的过程 1.进入控制器里的方法里  控制器的命名必须以Controll结尾前面的名字要和view层的命名一致 2.控制器完了以后 就进入view层对应的视图里 3.视图里调用model   ...

  4. VS2010+PCL+openni配置

    PCL中文论坛:http://www.pclcn.org/bbs/forum.php 1.安装 pcl 的完全安装包可以到: http://pointclouds.org/downloads/wind ...

  5. 689C - Mike and Chocolate Thieves 二分

    题目大意:有四个小偷,第一个小偷偷a个巧克力,后面几个小偷依次偷a*k,a*k*k,a*k*k*k个巧克力,现在知道小偷有n中偷法,求在这n种偷法中偷得最多的小偷的所偷的最小值. 题目思路:二分查找偷 ...

  6. AI 人工智能 探索 (六)

    这次我为 角色 attribute 添加了 多个属性 其中 att 是 好人 坏人 等属性, 显然 数字不同 就要打起来. grade 是智商属性 ,今天先做了 3的智商.也就是小兵智商.碰到就打 逃 ...

  7. GUI矩形、椭圆、线、框架

    所有的Swing组件必须由时间调度线程(event dispatch thread)进行配置,线程将鼠标点击和键盘敲击控制转移到用户接口组件.下面的代码片段是事件调度线程中的执行代码: EventQu ...

  8. POJ 1365 Prime Land(整数拆分)

    题意:感觉题意不太好懂,题目并不难,就是给一些p和e,p是素数,e是指数,然后把这个数求出来,设为x,然后让我们逆过程输出x-1的素数拆分形式,形式与输入保持一致. 思路:素数打表以后正常拆分即可. ...

  9. android ApplicationContext Context Activity 内存的一些学习

    Android中context可以作很多操作,但是最主要的功能是加载和访问资源. 在android中有两种context,一种是application context,一种是activity cont ...

  10. 利用未文档化API:RtlGetNtVersionNumbers 获取系统版本号

    问题一:Windows SDK 8.1版本中的VersionHelper.h文件当中没有IsWindows10ORGreater,所以当你用IsWindows8Point1ORGreater判断出版本 ...