【发布时间】: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