PhoneGap 在表单提交时将图像上传到服务器

2024-02-12

我在这里面临问题,因为一旦您选择图片,phonegap 图像就会上传到服务器。我不想在提交表单之前上传图像。图像自动上传到服务器,这是我不想要的。我想使用表单上传图像,其中表单包含更多与图像一起发送所需的字段。可以通过哪些方式提交表单?

<!DOCTYPE HTML >
<html>
<head>
<title>Registration Form</title>
<script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.js"></script>
<script type="text/javascript" charset="utf-8">

    // Wait for PhoneGap to load
    document.addEventListener("deviceready", onDeviceReady, false);

    // PhoneGap is ready
    function onDeviceReady() {
// Do cool things here...
    }

    function getImage() {
        // Retrieve image file location from specified source
        navigator.camera.getPicture(uploadPhoto, function(message) {
alert('get picture failed');
},{
quality: 50,
destinationType: navigator.camera.DestinationType.FILE_URI,
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY
});}
    function uploadPhoto(imageURI) {
        var options = new FileUploadOptions();
        options.fileKey="file";
        options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
        options.mimeType="image/jpeg";

        var params = new Object();
        params.value1 = "test";
        params.value2 = "param";

        options.params = params;
        options.chunkedMode = false;

        var ft = new FileTransfer();
        ft.upload(imageURI, "http://yourdomain.com/upload.php", win, fail, options);
    }

    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);
    }

    </script>
</head>
<body>
<form id="regform">
<button onclick="getImage();">select Avatar<button>
<input type="text" id="firstname" name="firstname" />
<input type="text" id="lastname" name="lastname" />
<input type="text" id="workPlace" name="workPlace" class="" />
<input type="submit" id="btnSubmit" value="Submit" />
</form>
</body>
</html>

创建两个可以单独调用的函数。一个函数用于获取图像,另一个函数用于上传图像。

你可以做如下的事情。

<!DOCTYPE html>
<html>
  <head>
    <title>Submit form</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    var pictureSource;   // picture source
    var destinationType; // sets the format of returned value

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready",onDeviceReady,false);

    // device APIs are available
    //
    function onDeviceReady() {
        pictureSource = navigator.camera.PictureSourceType;
        destinationType = navigator.camera.DestinationType;
    }


    // Called when a photo is successfully retrieved
    //
    function onPhotoURISuccess(imageURI) {

        // Show the selected image
        var smallImage = document.getElementById('smallImage');
        smallImage.style.display = 'block';
        smallImage.src = imageURI;
    }


    // A button will call this function
    //
    function getPhoto(source) {
      // Retrieve image file location from specified source
      navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
        destinationType: destinationType.FILE_URI,
        sourceType: source });
    }

    function uploadPhoto() {

        //selected photo URI is in the src attribute (we set this on getPhoto)
        var imageURI = document.getElementById('smallImage').getAttribute("src");
        if (!imageURI) {
            alert('Please select an image first.');
            return;
        }

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

        options.params = {
            firstname: document.getElementById("firstname").value,
            lastname: document.getElementById("lastname").value,
            workplace: document.getElementById("workplace").value
        }

        var ft = new FileTransfer();
        ft.upload(imageURI, encodeURI("http://some.server.com/upload.php"), win, fail, options);
    }

    // Called if something bad happens.
    //
    function onFail(message) {
      console.log('Failed because: ' + message);
    }

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

    function fail(error) {
        alert("An error has occurred: Code = " + error.code);
        console.log("upload error source " + error.source);
        console.log("upload error target " + error.target);
    }

    </script>
  </head>
  <body>
    <form id="regform">
        <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">Select Photo:</button><br>
        <img style="display:none;width:60px;height:60px;" id="smallImage" src="" />

        First Name: <input type="text" id="firstname" name="firstname"><br>
        Last Name: <input type="text" id="lastname" name="lastname"><br>
        Work Place: <input type="text" id="workplace" name="workPlace"><br>
        <input type="button" id="btnSubmit" value="Submit" onclick="uploadPhoto();">
    </form>
  </body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PhoneGap 在表单提交时将图像上传到服务器 的相关文章

  • 错误:Phonegap 中的白名单拒绝

    我是移动开发新手 我正在使用 Phonegap Cordova 创建跨平台应用程序 我的代码在 Android 上运行良好 但当我将其移植到 iPhone 时 它 显示错误 143 2003 ERROR whitelist rejectio
  • 使用phonegap发送电子邮件[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 任何人都可以帮助使用 Phonega
  • 让 PHP 页面输出静态图像

    我希望 PHP 能够发送 3 张图像中的 1 张 具体取决于 GET 范围 我现在有三个独立的 PNG 图像 并且希望 PHP 脚本将这些图像嵌入其中 然后返回指定的图像 所以 我想要一个 PHP 脚本而不是 3 个图像 这可能吗 我不需要
  • Google Chrome 中不缓存动态加载的图像

    使用 jQuery 加载的图像未保存在 Google Chrome 的缓存中 每次都会从服务器下载 情况 我正在使用 jQuery slimbox2 在 灯箱 中加载图片 此时没有什么特别的 我添加了一些 jQuery 代码来检测鼠标光标何
  • 使用 WL.Client.reloadApp 重新加载应用程序时是否会调用 wlcommoninit

    使用 WL Client reloadApp 重新加载应用程序时 是否会调用 wlcommoninit 我在混合应用程序中有用户注销功能 注销后 将调用 WL Client 的 reloadApp 方法 重新加载后 似乎没有调用 wlcom
  • 如何在android中使用parse api在parse服务器中上传图像

    我想在android中的解析云服务器中上传图像 但我无法这样做 我尝试过以下代码 Drawable drawable getResources getDrawable R drawable profilepic Bitmap bitmap
  • BIRT 不显示 base64 编码的图像

    我想将图像包含到 BIRT 报告中 图像应由 XML 数据源 base64 编码 给出 但XML数据源不支持Blob数据类型 我找到了一个很好的答案这个 BIRT 问题 https stackoverflow com questions 2
  • 无需画布,用纯 JS 生成图像

    如何在没有画布的情况下用纯 JavaScript 无外部库 从像素数组生成 绘制图片 我尝试以URI形式生成图像但没有成功 图片格式不容易快速理解和实现 BMP 数据URI 您可以使用以下函数生成 BMP 位图 dataURI 24 位的
  • Android 4.3 和 PhoneGap,无法点击链接

    我在 Galaxy Note 3 上使用 PhoneGap 2 9 我的布局类似于 Facebook 手机的布局 它有一个从左侧滑出的导航栏 我遇到的问题是 当导航栏的按钮超出屏幕大小并需要滚动时 无法点击它们 也就是说 它们不会执行预期的
  • 如何从 url Codenameone 创建图像

    我需要从具有图像 url 的字符串创建一个新的 Image 实例 E g http maps gstatic com mapfiles place api icons restaurant 71 png http maps gstatic
  • 跨 webView 和 CordovaWebView android 共享 localStorage

    我正在尝试在 webView 和 CordovaWebView 之间共享活动数据 CordovaWebView 当然使用 webView 这就是为什么我不明白为什么存储在我的 PhoneGap 应用程序的 localStorage 中的数据
  • 如何从命令行构建 apache cordova 项目?

    我已经在 Windows Cygwin 平台上设置了 apache cordova 我可以使用命令创建项目 cordova create
  • 从设备读取 ionic www/config.xml 文件

    我在从 Android 设备读取 www config xml 文件时遇到问题 我尝试了两种不同的方法 首先 我尝试使用另一个线程中推荐的 http 服务 当这不起作用时 我尝试使用 Cordova 文件插件 我这样做的原因是尝试从应用程序
  • 此错误消息“insertId: Error: INVALID_ACCESS_ERR: DOM Exception 15”的含义是什么?

    我正在使用 jquery mobile phonegap 和 openDatabase 开发一个应用程序 当应用程序执行时 我可以在 Safari 浏览器的控制台中看到SQL结果集与此消息 insertId Error INVALID AC
  • 使用 API 将文件上传到 Google 云端硬盘并出现错误 403

    我想将 zip 文件上传到 Google 云端硬盘 我使用 Java 快速入门 https developers google com drive v3 web quickstart java https developers google
  • Android 相机未保存在特定文件夹 [MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA]

    当我在 Intent 中使用 MediaStore INTENT ACTION STILL IMAGE CAMERA 时遇到问题 相机正常启动 但它不会将文件保存在我的特定文件夹 photo 中 但是当我使用 MediaStore ACTI
  • 如何制作 Bash 脚本来查找项目中未使用的图像?

    如何制作一个 Bash shell 脚本 它可以识别所有 jpg gif 和 png 文件 然后识别文件夹中任何文本文件中哪些文件未通过 url href 或 src 链接 这就是我开始的 但我最终得到了与我想要的相反的结果 我不想知道引用
  • JavaFX ImageView 未更新

    因此 我尝试将图像加载并保存到 imageView 中 其中图像的位置是通过文件浏览器选择的 我已经为此工作好几天了 如果我不能解决这个问题 我就会中风 我已经尝试了我能想到的一切 预先感谢您的帮助 UPDATED 这是我的主要课程 pub
  • 来自 HTML5 的 Phonegap Bonjour/Zeroconf 或 Websocket IP 发现

    我正在尝试实现一个 Phonegap HTML5 应用程序 该应用程序连接到 Websocket 服务器 在嵌入式设备中运行 也有 Bonjour 服务 以在家庭网络内交换数据 我想知道使用 Phonegap 检测服务器 IP 的最佳方法
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我

随机推荐

  • SQL Server - 使用递归外键进行级联 DELETE

    我花了很多时间试图找出如何实现删除时级联SQL Server 上的递归主键已经有一段时间了 我已经阅读了有关触发器 创建临时表等的内容 但尚未找到适合我的数据库设计的答案 这是一个用于演示目的的老板 员工数据库示例 TABLE employ
  • Flutter - 失败:构建失败并出现异常。 - 无法启动守护进程。 - Android Studio - VSCode

    每当我尝试使用 flutter run v 运行 flutter 应用程序时 都会收到以下错误 如果我不使用终端 只需单击 运行 则正在运行的 gradle 任务将继续运行 并且不会发生任何情况 I tried 在 gradle prope
  • Angular 2 ng-bootstrap 模态

    我使用组件而不是模板在应用程序中打开模态 然后我需要将对象模型传递给模态组件 问题是打字稿给出了 modalRef componentInstance 不作为属性存在的错误 我完全复制了示例表单演示页面 但再次给出同样的错误 并且永远不会在
  • 为什么有些语句在线程中运行时执行失败?

    我无法理解程序的行为这段代码示例 http rustbyexample com channels html use std comm use std thread Thread static NTHREADS uint 3 fn main
  • 服务器端处理与客户端处理+ajax?

    寻找一些一般性建议和 或想法 我正在创建一个我认为更像是一个网络应用程序而不是网页的东西 因为我想让它像一个 Gmail 应用程序 您可以让页面整天打开 同时将更新 推送 到页面 对于有兴趣我正在使用彗星编程技术 我以前从未创建过如此丰富的
  • 尝试将字符串转换为 MarketDataIncrementalRefresh

    我有一个文本文件FIX messages 所有这些和 MarketDataIncrementalRefresh 类型 X 我正在尝试找到一种使用的方法QuickFIX in C 创造MarketDataIncrementalRefresh消
  • 当用户从其他选项卡返回时重新加载页面

    我在某种重视更新的网站上工作 为此 当用户从另一个选项卡切换到网站的选项卡时 我需要刷新页面 有没有办法用 JavaScript jQuery 做到这一点 我知道location reload 用于刷新页面 但我不知道如何告诉 JavaSc
  • Three.js 2D 文本精灵标签

    我是 Three js 的新手 并且有一些属于 2D 文本的问题 我想要的是 我想要一些标签 例如 x y 和 z 轴 标签应始终面向相机 也许稍后它们应该只在悬停时才被显示 但那是另一个话题 我的问题是什么我找到了这个教程 这正是我想要达
  • 在 MongoDB GROUP BY 中执行 HAVING 的正确方法是什么?

    对于 SQL 中的这个查询 查找重复项 SELECT userId name FROM col GROUP BY userId name HAVING COUNT gt 1 我在 MongoDB 中执行了这个简单的查询 res db col
  • 如何自动读取 x86 ASM 中的值?

    我知道如何在 x86 ASM 中自动写入一个值 但我该如何阅读呢 LOCK 前缀不能与 mov 一起使用 为了增加价值 我正在做 lock inc dword ptr Counter 如何以线程安全的方式读取 Counter 正如我向你解释
  • 仅在需要时注入模块依赖项(如插件) AngularJS

    我有 2 页 我不使用angular s routing 此限制 在其中之一我想使用该指令ui grid http ui grid info docs tutorial 101 intro就像这个演示一样 var app angular m
  • std::string::compare(const char*) 可以抛出异常吗?

    这是超载 4 here https en cppreference com w cpp string basic string compare 在 异常 部分 重载 2 3 5 6 具有 pos1 和 或 pos2 参数 被命名为 thro
  • 如何使用服务帐户通过 .NET C# 访问 Google Analytics API V3?

    我意识到这个问题之前已经被问过 但几乎没有示例代码 所以我再次询问 但至少有一点方向 经过几个小时的搜索 我想出了以下部分实现 namespace GoogleAnalyticsAPITest Console using System Se
  • 如何设置目录权限

    我跟着SOlink https stackoverflow com questions 4272406 wix how to set permissions for folder and all sub folders为文件夹添加权限 但是
  • 测试 DAO 时出错:sun.reflect.generics.reflectiveObjects.TypeVariableImpl 无法转换为 java.lang.Class

    我对 Spring Hibernate 非常陌生 我正在运行测试来查看我的 DAO 是否正常工作 我收到以下错误 在谷歌搜索时会产生很多不同的答案 主要是拼写错误 我已经检查过 我希望你能帮我解决这个问题 java lang Illegal
  • PHP 警告:DOMDocument::loadHTML():属性 alt 重新定义

    我在 CentOS 上运行以下代码 roster utils gt getContentCURL http exporter nih gov ExPORTER Catalog aspx docmp new DOMDocument docmp
  • 如何在没有DLL的情况下编译SDL程序并运行它

    是否可以将SDL库程序编译为exec并在没有 sdl dll 的情况下运行它 例如 假设我编写了 sdl 程序 它可以工作 但问题是要在 Windows 上运行该程序 我需要在同一文件夹或系统文件夹中包含 sdl dll 是否可以编译它 以
  • Spring基于注解的DI vs xml配置?

    最近 在我们的团队中 我们开始讨论在代码中使用 spring 注释来定义 spring 依赖项 目前我们正在使用 context xml 来定义我们的依赖项 您能给我一些关于这两种方法的线索吗 什么时候使用一种方法更好 编辑 我知道这对于一
  • 具有综合和继承属性的深度递归 qi 语法(解析器)

    我使用spirit qi 语法来构造并返回非平凡对象作为其合成属性 问题是我希望语法递归地相互依赖 使用递归很简单rules 但我想要递归grammars 这是一些示例代码 请注意 循环引用 的注释 显然 如果我取消注释这些行 则无法编译
  • PhoneGap 在表单提交时将图像上传到服务器

    我在这里面临问题 因为一旦您选择图片 phonegap 图像就会上传到服务器 我不想在提交表单之前上传图像 图像自动上传到服务器 这是我不想要的 我想使用表单上传图像 其中表单包含更多与图像一起发送所需的字段 可以通过哪些方式提交表单