【问题标题】:how to request a single file as object如何请求单个文件作为对象
【发布时间】:2017-01-14 00:59:23
【问题描述】:

我刚开始学javascirpt,php大概2天。我面临的问题是我在服务器根目录下已经有一个 x.dcm 文件,并且我已经知道该路径(例如http://localhost:8888/...。) 我的问题是我怎样才能简单地从服务器获取该文件以使用,可能是这样的:

var file= 'http://localhost:8888/....';      ////file is not an object

我问这个问题是因为我已经知道如何使用输入法了:

<input type="file" name="file" id="file">
<script>
    $('#file').on('change',function(e){
         var file = e.target.file;            ///file is an object
      });
</script>

但这不是我想要的,我想要的是使用现有文件而不是输入。

所以整件事是这样的:

<form id="input" method="post" enctype="multipart/form-data">
<input type="file" id="fileToUpload" name="fileToUpload">
</form>

我首先输入上传一些文件,然后在脚本中

<script>

$("form#input").submit(function(){

    var formData = new FormData($(this)[0]);
$.ajax({
    url: 'segmentation.php',
    type: 'POST',
    data: formData,
    async: false,
    success: function (html) {
        $('#segbound').html(html);
    },
    cache: false,
    contentType: false,
    processData: false
});

return false;
});
</script>

我发送这个文件(例如 image.dcm)在服务器端做某事(运行一个 exec),然后它在预期的路径(http://localhost:8888/....)中生成另一个图像(imgproc.dcm),然后接下来是我处理过的图像在屏幕上显示的内容。为此,我需要使用一个名为cornerstone的js,以及其中的函数imageLoader.fileManager.get(file) 我要显示哪个文件。

如上所述,当我使用var file = e.target.file; 从输入中进行选择时,它运行良好,然后我检查文件类型,它是一个[文件对象]。 但是,当我想通过使用 var file= 'http://localhost:8888/....'; 简单地显示“imgproc.dcm”时,文件类型不是我的问题的对象,我怎样才能简单地获取该已知路径图像以用作对象。

或者,为了改善这一点,可以在服务器端处理后直接获取返回(生成的 imgproc.dcm),然后使用该返回(也许给它一个 id...不知道)显示(调用基石函数imageLoader.fileManager.get(file)

在服务器端,它看起来像:

<?php
$target_dir = "/Applications/MAMP/htdocs/dicomread/temp/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
if (file_exists($target_file)) {
    echo "file has already been uploaded.";
    $uploadOk = 0;
}


if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";

} else {
    if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_file)) {
        echo "The file ". basename( $_FILES['fileToUpload']['name']). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}

    $cmd = "/Applications/MAMP/htdocs/dicomread/abc 2>&1";
    $Output_fileName = "imgproc.dcm";//$_FILES['fileToUpload']['name'];

    exec("$cmd $target_file $Output_fileName);

    echo "<br/>done";

?>

任何帮助将不胜感激。

【问题讨论】:

  • 请更具体地说明您的问题。我不明白你的意思..
  • 这里没有看到任何 PHP...
  • @wogsland 实际上没有关于 php 的东西,我的错,这只是关于如何将服务器上存在的文件用作文件对象的简单问题
  • 什么文件对象像 php 文件指针或 javascript 文件存储对象?
  • 使用 ajax 来做到这一点:$.get('path/to/file', function(data) { console.log(data); });

标签: javascript php jquery xmlhttprequest


【解决方案1】:

使用 fopen 和文件的 URL:

$file = fopen("http://localhost:8888/x.dcm", "r");

fopen 参考这里:http://php.net/manual/en/function.fopen.php

【讨论】:

猜你喜欢
  • 2021-07-02
  • 1970-01-01
  • 2019-01-27
  • 2018-02-22
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多