起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11727|回复: 46

[处理中3] 我的baas上传服务本地可以上传,到了服务器无法上传什么原因?

[复制链接]

51

主题

195

帖子

757

积分

高级会员

Rank: 4

积分
757
QQ
发表于 2018-8-26 18:51:48 | 显示全部楼层 |阅读模式
我的baas上传服务本地可以上传,到了服务器无法上传什么原因?也没有什么错误提示,按照这个来的帖子做的http://bbs.wex5.com/forum.php?mo ... 1095&highlight=用户头像   希望高人指教谢谢?

6

主题

77

帖子

178

积分

初级会员

Rank: 2

积分
178
QQ
发表于 2018-8-27 09:22:22 | 显示全部楼层
1.看一下Baas层的路径在服务器上是否存在。2.String docStorePath = baasPath + ".." + File.separator + ".."+ File.separator + "model" +File.separator + "UI2" +File.separator + "myClassmate" +File.separator+"uploadfiles" ;打印出这个路径存的斜杠对不对3.有可能前端路径写的不对展示不出来。4.服务器存图片的文件夹没有无法存图片
回复 支持 反对

使用道具 举报

51

主题

195

帖子

757

积分

高级会员

Rank: 4

积分
757
QQ
 楼主| 发表于 2018-8-27 22:27:26 | 显示全部楼层
xuErnest 发表于 2018-8-27 09:22
1.看一下Baas层的路径在服务器上是否存在。2.String docStorePath = baasPath + ".." + File.separator + " ...

baas里的路径服务器上有,打印出来的路径带斜杠的,前端路径正确怎么写?服务器存图片的文件夹有,请问其他有没有什么问题?请指教谢谢。
回复 支持 反对

使用道具 举报

6

主题

77

帖子

178

积分

初级会员

Rank: 2

积分
178
QQ
发表于 2018-8-28 09:43:16 | 显示全部楼层
三种一种是相对路径../../demo/image/1.png(前面的层级根据你图片存的位置和你用到的文件夹相差的层级),第二种绝对路径项目名$UI/“项目名”/"文件夹名"/1.png。最好用之前用require.toUrl转一下。最后一种最简单直接用,把服务器的域名拼在前头就是http://********/“项目名”/"文件夹名"/1.png
回复 支持 反对

使用道具 举报

6

主题

77

帖子

178

积分

初级会员

Rank: 2

积分
178
QQ
发表于 2018-8-28 09:46:09 | 显示全部楼层
jyxl2007 发表于 2018-8-27 22:27
baas里的路径服务器上有,打印出来的路径带斜杠的,前端路径正确怎么写?服务器存图片的文件夹有,请问其 ...

我上面说的前两种最好要转一下,第三种直接放到src上就好
回复 支持 反对

使用道具 举报

6

主题

77

帖子

178

积分

初级会员

Rank: 2

积分
178
QQ
发表于 2018-8-28 12:17:44 | 显示全部楼层
jyxl2007 发表于 2018-8-27 22:27
baas里的路径服务器上有,打印出来的路径带斜杠的,前端路径正确怎么写?服务器存图片的文件夹有,请问其 ...

图片没有存在文件夹里的话就要看java拼接的路径对不对了!流有没有写成文件
回复 支持 反对

使用道具 举报

51

主题

195

帖子

757

积分

高级会员

Rank: 4

积分
757
QQ
 楼主| 发表于 2018-8-28 23:02:45 | 显示全部楼层
xuErnest 发表于 2018-8-28 12:17
图片没有存在文件夹里的话就要看java拼接的路径对不对了!流有没有写成文件 ...

java代码这样有没有问题请看看,

public class SRgbryz {
       
        public static JSONObject getwpCount(JSONObject params, ActionContext context)
                        throws SQLException, NamingException {
                String in = params.getString("abc");
                System.out.println("-----------------");
                System.out.println(in);
                JSONObject ret = new JSONObject();
                ret.put("count", 1000);
                return ret;
        }

        public static JSONObject uploadPicfile(JSONObject params,
                        ActionContext context) throws SQLException, NamingException,
                        IOException {

                System.out.println("uploadPicfile is running...");

                String ownerID = params.getString("ownerID");
                String storeFileName = params.getString("storeFileName");
                String picData = params.getString("picData");

                String baasPath = Thread.currentThread().getContextClassLoader().getResource("").getPath() + ".." + File.separator + "..";
                String docStorePath = baasPath  + File.separator + "model" + File.separator + "UI2" + File.separator + "jdjmbr" + File.separator + "gbr";

                File docstoreDir = new File(docStorePath);
                if (!(docstoreDir.exists() && docstoreDir.isDirectory())) {
                        docstoreDir.mkdirs();
                }

                String storePath = docStorePath + File.separator + ownerID;
                File storeDir = new File(storePath);
                if (!(storeDir.exists() && storeDir.isDirectory())) {
                        storeDir.mkdirs();
                }

                System.out.println("后台计算的baasPath的值:" + baasPath);
                System.out.println("后台计算的docStorePath的值:" + docStorePath);
                System.out.println("后台计算的storeDir的值:" + storeDir);

                BASE64Decoder decoder = new BASE64Decoder();
                try {
                        byte[] decodedBytes = decoder.decodeBuffer(picData);

                        String imgFile = storePath + File.separator + storeFileName;
                        FileOutputStream out = new FileOutputStream(imgFile);
                        out.write(decodedBytes);
                        out.close();
                        System.out.println("图片上传成功!");
                } catch (Exception e) {
                        System.out.println("图片上传失败!");
                        e.printStackTrace();
                }
                return null;
        }
   
        private static final int BUFFER_SIZE = 32768 * 8;        
        public static JSONObject browsePicfile(JSONObject params, ActionContext context) throws SQLException, NamingException, IOException {
                
                 System.out.println("browsePicfile is running...");
                 HttpServletRequest request = (HttpServletRequest)context.get(ActionContext.REQUEST);
                 HttpServletResponse response = (HttpServletResponse)context.get(ActionContext.RESPONSE);

                 String baasPath = Thread.currentThread().getContextClassLoader().getResource("").getPath() + ".." + File.separator + ".." ;
                 String docStorePath = baasPath + File.separator + "model" + File.separator + "UI2" + File.separator + "jdjmbr" + File.separator+"gbr" ;

                 String ownerID = request.getParameter("ownerID");
                 String storeFileName = request.getParameter("storeFileName");
                        
                File file = new File(docStorePath + File.separator +ownerID + File.separator + storeFileName);
                FileInputStream fis = new FileInputStream(file);

                        response.setHeader("Cache-Control", "pre-check=0, post-check=0, max-age=0");                        
                        String fileNameKey = "filename";               
                        response.addHeader("Content-Disposition", "inline; "+fileNameKey+"=\"" + storeFileName + "\"");
                        
                        OutputStream os = response.getOutputStream();
                byte[] buffer = new byte[BUFFER_SIZE];
                try {
                    int read;
                    while ((read = fis.read(buffer)) != -1) {
                            os.write(buffer, 0, read);
                    }
                } finally {
                    fis.close();
                }
                return null;
        }


}
回复 支持 反对

使用道具 举报

51

主题

195

帖子

757

积分

高级会员

Rank: 4

积分
757
QQ
 楼主| 发表于 2018-8-28 23:05:38 | 显示全部楼层
xuErnest 发表于 2018-8-28 12:17
图片没有存在文件夹里的话就要看java拼接的路径对不对了!流有没有写成文件 ...

图片浏览地址是这样拼的,"/baas/jdjmapp/SRgbryz/SRkmgbrq?ownerID=19&storeFileName=C81E46FEFC800001F351103E117F15AB&operateType=browse" 本地可以上传浏览但到拉服务器没有响应,也没有错误提示
回复 支持 反对

使用道具 举报

51

主题

195

帖子

757

积分

高级会员

Rank: 4

积分
757
QQ
 楼主| 发表于 2018-8-28 23:10:48 | 显示全部楼层
xuErnest 发表于 2018-8-28 12:17
图片没有存在文件夹里的话就要看java拼接的路径对不对了!流有没有写成文件 ...

路径可以拼接,但是关键是上传不了,肯定是JAVA的问题请看看,这个JAVA里只有这些代码。
回复 支持 反对

使用道具 举报

6

主题

77

帖子

178

积分

初级会员

Rank: 2

积分
178
QQ
发表于 2018-8-29 13:14:19 | 显示全部楼层
jyxl2007 发表于 2018-8-28 23:10
路径可以拼接,但是关键是上传不了,肯定是JAVA的问题请看看,这个JAVA里只有这些代码。 ...

浏览地址不对吧,没有前缀,既然到服务器上了路径需要服务器能访问的到,服务路径加/baas/jdjmapp…………
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-27 07:05 , Processed in 0.078663 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表