当前位置: 首页 > 面试题库 >

Phonegap FileUpload Java服务器

卢子民
2023-03-14
问题内容

我正在尝试在Java Server上上传图像。文件正在从android设备传输,但在server上保存了null。

这是服务器代码

public UploadMediaServerResponse uploadFileForFunBoard(@FormDataParam("photoPath") InputStream photoInputStream,
            @FormDataParam("photoPath") FormDataContentDisposition photoFileDetail,
            @FormDataParam("userId") int userId, @FormDataParam("mediaType") String mediaType,
            @FormDataParam("title") String title,@FormDataParam("funBoardId") int funBoardId)
    {

        MediaContenModel mediaContenModel = new MediaContenModel();
        mediaContenModel.setFunBoardId(funBoardId);
        mediaContenModel.setMediaType(mediaType);
        mediaContenModel.setUserId(userId);

        UploadMediaServerResponse uploadMediaServerResponse = new UploadMediaServerResponse();
        boolean isMediaProcessedAndUploaded = true;
        String mediaProcessingError = "";

        if (photoInputStream != null && photoFileDetail != null)
        {
            uploadMediaServerResponse = mediaService.uploadOnServer(photoInputStream,
                    photoFileDetail.getFileName(), userId+"");
            if (uploadMediaServerResponse != null
                    && !uploadMediaServerResponse.getMediaUrl().equalsIgnoreCase("ERROR"))
            {
                mediaContenModel.setImageUrl(uploadMediaServerResponse.getMediaUrl());
                logger.debug("ContentService --> createStroyline --> fearture Image url ::"
                        + uploadMediaServerResponse.getMediaUrl());
            }
            else
            {
                isMediaProcessedAndUploaded = false;
                mediaProcessingError = uploadMediaServerResponse.getMediaUrl();
                logger.debug("ContentService --> createStroyline -->  mediaProcessingError ::"
                        + mediaProcessingError);
            }
        }

        if (isMediaProcessedAndUploaded)
        {
            UploadMediaServerResponse response = funBoardService.uploadMediaContent(mediaContenModel);
            uploadMediaServerResponse.setMediaUrl(response.getMediaUrl());
        }
        else
        {
            uploadMediaServerResponse.setError("Task Failed");
            uploadMediaServerResponse.setStatus(ServiceAPIStatus.FAILED.getStatus());
        }
        return uploadMediaServerResponse;
    }

这是我的电话间隙代码

var pictureSource;   
var destinationType;


function onPhotoURISuccess(imageURI) 
{
    console.log(imageURI);
    var largeImage = document.getElementById('largeImage');
    largeImage.style.display = 'block';
    largeImage.src = imageURI;










 var options = new FileUploadOptions();
            options.fileKey="photoPath";
            options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
            options.mimeType="image/jpeg";



                options.params = {
                            "userId": 1,
                            "funBoardId": 3,
                            "mediaType": 'image'
                        };


            console.log(JSON.stringify(options));

            var ft = new FileTransfer();
            ft.upload(imageURI, _BaseURL+"mobile/userService/funboard/upload", win, fail, options);



}

function onPhotoDataSuccess(imageURI) 
{ 
    var imgProfile = document.getElementById('imgProfile');
    imgProfile.src = imageURI;
    if(sessionStorage.isprofileimage==1)
    {
        getLocation();
    }
    movePic(imageURI);
}

function onFail(message) 
{
    alert('Failed because: ' + message);
}

function movePic(file)
{ 
    window.resolveLocalFileSystemURI(file, resolveOnSuccess, resOnError); 
}

function resolveOnSuccess(entry)
{ 
    var d = new Date();
    var n = d.getTime();
    var newFileName = n + ".jpg";
    var myFolderApp = "MyAppFolder";
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) 
    {      
        fileSys.root.getDirectory( myFolderApp,
                {create:true, exclusive: false},
                function(directory) 
                {
                    entry.moveTo(directory, newFileName,  successMove, resOnError);
                },
        resOnError);
    },
    resOnError);
}

function successMove(entry) 
{
    alert(entry.fullPath);
    sessionStorage.setItem('imagepath', entry.fullPath);
}

function resOnError(error) 
{
    alert(error.code);
}

function capturePhotoEdit() 
{
    navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true,
    destinationType: destinationType.DATA_URL });
}

function getPhoto(source) 
{
    navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
    destinationType: destinationType.FILE_URI,
    sourceType: source });
}

function onFail(message) 
{
    alert('Failed because: ' + message);
 }



function win(r) {
            console.log("Code = " + r.responseCode);
            console.log("Response = " + r.response);
            console.log("Sent = " + r.bytesSent);
            alert(r.response);
        }

        function fail(error) {
            alert("An error has occurred: Code = " = error.code);
        }

04-14 19:33:46.0​​10:E /
FileTransfer(13550):java.io.FileNotFoundException:http:/// jeeyoh / mobile /
userService / funboard / upload

提前致谢


问题答案:

更换

     options.fileKey="file";

     options.fileKey="photoPath";


 类似资料:
  • 如何包含Eureka服务器 要在项目中包含Eureka服务器,请使用组org.springframework.cloud和工件id spring-cloud-starter-eureka-server的启动器。有关 使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面。 如何运行Eureka服务器 示例eureka服务器; @SpringBoot

  • hprose 为发布服务提供了多个方法,这些方法可以随意组合,通过这种组合,你所发布的服务将不会局限于某一个函数,某一个方法,某一个对象,而是可以将不同的函数和方法随意重新组合成一个服务。 AddFunction 方法 AddFunction(name string, function interface{}, option ...Options) Service 该方法的用于发布一个函数(命名函

  • Debug 字段 该设置默认值是 false,当发生错误时,只返回错误信息本身。 当该字段设置为 true 时,当发生 panic 时,会将整个 panic 的错误堆栈信息返回给客户端,在用户进行 hprose 服务开发时,该设置可以帮助你快速定位错误位置。 ErrorDelay 字段 该设置为整型值,默认值为 10 秒。 该字段表示在调用执行时,如果发生异常,将延时一段时间后再返回给客户端。 在

  • null null Tomcat服务器正在运行servlet,为mySQL数据库执行一些业务逻辑和hibernate框架。 现在我有点糊涂了。两台服务器都能接收HTTP请求吗?就像servlet从网页接收https请求和我的apache服务器一样? 并且两者都可以连接到数据库--使用php的apache服务器,正如我提到的,同时使用servlet的tomcat?

  • 如何在生产环境中将hazelcast服务器作为linux服务运行? java-server-cp hazelcast。jar com。黑兹卡斯特。例子。StartServer StartServer运行带有输出到std终端的服务器,将其作为linux服务运行并将日志写入文件的最简单方法是什么 我必须将其设置为EC2实例中的服务并将其捆绑。当EC2自动缩放启动实例时,hazelcast服务器将启动并

  • 创建 http 服务器 package main   import ( "net/http"   "github.com/hprose/hprose-golang/rpc" )   func hello(name string) string { return "Hello " + name + "!" }   func main() { service := rp

  • 我正在开发一个基于云的后端HTTP服务,该服务将公开用于与一些on-prem系统的集成。客户机系统是由外部供应商定制的,它们是带有自己数据库的后端系统。这些系统部署在我们客户的公司中,我们无法访问它们,也无法控制它们。我们向供应商提供我们的API规范,他们实现客户机代码。 我的服务与客户交换的数据格式基于XML,并遵循一定的标准。供应商用不同的编程语言实现他们的客户机系统,随着时间的推移,新的供应

  • 问题 你想在网络上提供一个服务器。 解决方案 创建一个基本的 TCP 服务器。 在 Node.js 中 net = require 'net' domain = 'localhost' port = 9001 server = net.createServer (socket) -> console.log "Received connection from #{socket.remo