我刚开始学习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)。然后接下来就是我在屏幕上显示处理后的图像。要做到这一点,我需要使用一个叫做基石的js,以及它中的函数imageLoader.fileManager.get(file)
哪个文件是我要显示的文件。
当我如上所述使用var file = e.target.file;
从输入中选择时,它完美无缺,然后我检查文件类型它是[文件对象]。
但是,当我想简单地显示“imgproc.dcm&#39;通过使用var file= 'http://localhost:8888/....';
文件类型不是我的问题的对象,我怎样才能简单地抓住已知的路径图像作为对象。
或者,为了改进这一点,可以在服务器端进行处理后直接获得返回(生成的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";
?>
任何帮助都将不胜感激。
答案 0 :(得分:0)
将fopen与URL一起使用到文件中:
$file = fopen("http://localhost:8888/x.dcm", "r");