servlet怎么获取页面file的值 要求是获取到路径 servlet怎么取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet怎么获取页面file的值 要求是获取到路径 servlet怎么取相关的知识,希望对你有一定的参考价值。

一个简单的图片添加,获取页面的值 写入数据库。
页面:
<div align="center">
<form action="AddPhotoServlet" name="form" method="post" enctype="multipart/form-data">
<table>
<tr>
<td align="center">
<b>添加图片</b>
</td>
</tr>

<tr>
<td>
<b>图片路径:</b>
<input type="file" name="photo" value="file"/>
</td>
</tr>

<tr>
<td align="center">
<b><input type="submit" name="submit" value="提交" onclick="alert(filePath.value) "/ ></b>
</td>
</tr>
</table>
</form>
</div>
servlet:
里面怎么获取到<form>里的<type=file>的值
我用String add=request.getParameter("photo");获取到是空值。。。我不知道该怎么做,请给点思路或者是做法。

直接就能获取到的。 用jquery实现。
<input type="text" name="lawpeople.image" id="lawpeopleimage" readonly="readonly" style="display: none"/>
<input type="button" value="上传" onClick="return ajaxFileUpload();">
<span style="COLOR: #ff0000">*</span>
你可以选择异步上传,点击时候触发ajaxFileUpload()方法,将file文件里面的路径给id为lawpeopleimage 之后传值就可以了啊。
参考技术A 在网上找下commons-fileuplad 与servlet上传。看看别人的例子吧。很简单
文件上传是通过属性 enctype="multipart/form-data" 把要上传的文件或者图片转换成二进制,commons-fileuplad 包提供了对它的封装。
调用里面的方法就可以很容易的上传了。追问

看了好多,可是还是看不是很懂。

追答

你邮件多少我给你发个

追问

285502923@qq.com

参考技术B 如果你只是单纯想获取图片路径的话,在form中加入:
<input type="hidden" name="path" />

<input type="file" name="photo" value="file" onchange=getPath() /> //添加onchange事件,在getPath函数中将photo中的value赋给path,然后在servlet中就可以直接request.getParameter("path");本回答被提问者采纳
参考技术C 可以根据request获得请求的http字串;然后根据字串以及文件路径名的格式剪切出路径名,以及文件名。 参考技术D Part part=request.getPart("file");
part.getSubmittedFileName();
但只能得到单个文件名

(php)获取不到session的值 在其他页面 我在这边存储了一个session 跳转到其他页面就获取不到了

语法应该没什么问题 输出session也没报错 大概是配置问题 php.ini 改如何配置Session
(详解)

这个问题是你的页面没有关联
比如你有a.php b.php 和c.php
你在a.php里面使用session,那么b.php和c.php肯定是取不到session的啦
你这样,把a.php作为公共页面
你用b.php引用a.php
c.php也引用a.php
然后你在a.php使用session,b和c就都能取到session
简单的说, 你要使用session,必须这几个页面有关联追问


这样也取不到

追答

你可能要强制刷新一下页面
这个是session特殊的原因

追问

表单跳转到index页面 赋值session 可以获取的到 当我跳转下面的页面就不行了

不知道什么原因

追答


这段代码是index.php是么?
如果是,那么引用这个index.php的其他页面里面
不需要再session_start();
还有if(isset($_SESSION['aaa']))
有时候这个isset函数判断的不是你想要的,我是遇到过的,你还是直接输出一下session里面的值吧

追问

现在如果是公用页面可以获取到session的值了 但是我从login跳到index 不可能吧login这页面都公用吧 具体怎么做呢 唉 加分!!!

追答

你这样吧
你的程序不需要连接数据库么
你可以用一个main.php作为公用页面,在里面开启session
里面可以放连接数据库的代码呀
这样你后面的php文件也可以方便操作数据库了呀
这样不好么
还有,比如初始化一些程序需要的东西
比如使用smarty框架,使用语言包
都可以在这个main.php文件里初始化呀

参考技术A 注意个问题,session不能跨域名。追问

表单跳转到index页面 赋值session 可以获取的到 当我跳转下面的页面就不行了

不知道什么原因

追答

你在index.php中,$_SESSION['aaa'] = $_POST['aaa']; 这句有问题。
在第二个页面你include了index.php,这时没有post数据,所以$_SESSION['aaa']被置空了。

参考技术B session是在浏览器的一个进程里,你的页面如果是两个进程,session是不能共享的。 参考技术C 我用的tp5.0 框架,也遇到这个问题,楼主解决了吗 参考技术D 应该不是配置的问题.
你的代码贴出来看看.

以上是关于servlet怎么获取页面file的值 要求是获取到路径 servlet怎么取的主要内容,如果未能解决你的问题,请参考以下文章

jsp中如何获取servlet的值?

在servlet中怎样获取jsp中下拉列表中的值

servlet怎么从浏览器地址栏获取?后面的数据

在springMVC中的Controller层中怎么获取页面中的input中用户输入的值?

帮我看看在Servlet里要访问js文件 路径要怎么设置

java的servlet里如何获取jsp页面上用ajax传过来的文件?