使用离子从设备上传文件只是不起作用



我有一个简单的html代码,它在我的服务器上点击我的php文件并上传文件。我需要在ionic中使用相同的东西,但它不起作用。以下是我的home.html代码

<form action="http://example.com/del/uploadtest/upload3.php" method="post" enctype="multipart/form-data">
  Select image to upload:
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="Upload Image" name="submit">
</form>

我尝试了离子file chooser,file transfer,但我未能实现它。我也尝试了valor's ng upload,它可以工作,但它只允许从设备发送图片,而从浏览器它允许各种文件。

我想将任何类型的文件从安卓上传到服务器。

我无法理解文件选择器,文件传输代码,也无法找到现成的代码。

参考文档,首先..安装文件传输和文件插件。

$ ionic cordova plugin add cordova-plugin-file-transfer
$ npm install --save @ionic-native/file-transfer

$ ionic cordova plugin add cordova-plugin-file
$ npm install --save @ionic-native/file

对于上传方法,请说它在主页上

首页.html

<input (click)="uploadFile()" type="submit" value="Upload Image" name="submit">

首页

uploadFile() {
  const fileTransfer: FileTransferObject = this.transfer.create();
  let options: FileUploadOptions = {
    fileKey: 'ionicfile',
    fileName: 'ionicfile',
    chunkedMode: false,
    mimeType: "image/jpeg",
    headers: {}
  }
  fileTransfer.upload('<file path>', '<api endpoint>', options)
    .then((data) => {
    console.log(data + "Uploaded Successfully");
  }, (err) => {
    console.log(err);
  });
}

注意:

<api endpoint> 是接收文件的服务器的 URL,由 encodeURI(( 编码。

<file path>是表示设备上的文件或数据 URI 的文件系统 URL。为了向后兼容,这也可以是设备上文件的完整路径。

在您的情况下,您的<api endpoint>http://example.com/del/uploadtest/upload3.php

<file path>http://192.168.0.7:8080/static/images/ionicfile.jpg

希望这会有所帮助!

这是适合我的脚本!无需使用任何插件您可以上传pdf,zip图像或任何文件格式,无需为Android和ios使用不同的插件在网页中

<input type="file" name="file"  (change)="upload($event)" />

在 TS 文件中

 upload(str:any)
  {
    const formData = new FormData();
    this.image=str.target.files[0];
    formData.append('files[]', this.image);
    console.log(formData,this.image);
    this.http.post("http://localhost/test/test.php",formData)
    .subscribe((data:any)=>{
      console.log(data);
    })
    console.log(str);
  }

这里的奖励是PHP文件:

<?php 
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_FILES['files'])) {
        $errors = [];
        $path = 'uploads/';
        $extensions = ['jpg', 'jpeg', 'png', 'gif'];
        $all_files = count($_FILES['files']['tmp_name']);  
            $file_tmp = $_FILES['files']['tmp_name'][0];
            $file_type = $_FILES['files']['type'][0];
            $file_size = $_FILES['files']['size'][0];
            $file_ext = strtolower(end(explode('.', $_FILES['files']['name'][0])));
            $file_name = uniqid().".".$file_ext;
            $file = $path . $file_name;
            if (empty($errors)) {
                move_uploaded_file($file_tmp, $file);
            }
        if ($errors) print_r($errors);
    }
}

相关内容

  • 没有找到相关文章

最新更新