日期:2014-05-18  浏览次数:20776 次

struts上传文件 文件空指针,控制台没报错。。
会先显示上传成功的界面,然后就报这个异常,文件上传 失败。
空指针报的是文件输出流。,谁帮我解决了,再加50分,,弄了好久了。
这个是浏览器上报的错。。,我发现了,action里面的execute方法竟然会执行两遍,,我写了个输出语句System.out.println(fileName);第一次是test.txt,第二次是null,,.找不到原因会执行两遍。

------解决方案--------------------
action配置的地方,和action调用的地方发来看看啊
------解决方案--------------------
如果是提交2次的问题,检查下你jsp页面是否有<img src="#">,或者是其它包含#的地方,把这些代码去掉试下就行了,有些浏览器会有这种情况。
------解决方案--------------------
下面是我写的一个案例,LZ看下能否帮到你
JSP
<div id="fileId" style='display:none;' class="file-box">
<form id="form2" 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="myfile" class="file" id="myfile"
     size="28" onchange="document.getElementById('textfield').value=this.value" />
  <input type="button" name="button" class="btn" id="btnSubmit" onclick="uploadExcel()" value="上传" />
  </form>
</div>
JS
function uploadExcel() {
var fileValue = document.getElementById("myfile").value;
var length=fileValue.length;
var xls = fileValue.substring(length-3,length);
if(fileValue != ""){
if(xls != "xls"){
alert("请选择正确的文件格式:如(test.xls)");
var obj = document.getElementById('myfile') ;  
obj.outerHTML=obj.outerHTML;
document.getElementById("textfield").value = "";
} else {
$(document).ready(function() {
             var options = {
                 url : getRootPath()+"/report/Upload.action",
                 type : "POST",//提交方式