У меня есть таблица, которую я создаю динамически. В последней ячейке таблицы находится раздел предварительного просмотра изображения. Я копирую файлы из сетевого расположения в мое локальное местоположение. Я написал этот класс Java для этого.
public class copyFile {
public static String main(String filename,String filepath) {
// TODO Auto-generated method stub
File original=new File(filepath);
File dest=new File("T:\\Temp\\");
try {
FileUtils.copyFileToDirectory(original, dest);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String newPath="T:\\Temp\\"+filename;
return newPath;
}
}
Я создаю таблицу, используя jquery ajax, как это.
<script>
if($.fn.dataTable.isDataTable( '#example' )){
var table = $('#example').DataTable();
}
function getData(){
$('#example tbody').html('');
var URL_PREFIX="http://localhost:8983/solr/archiveCore/select?q=strSO_copy:";
var URL_MIDDLE="AND PackName_copy:";
var URL_SUFFIX="AND DocType_copy:";
var strSO="\"" + $("#ngramBoxstrSO").val() + "\"";
var PackName="\"" + $("#ngramBoxPackName").val() + "\"";
var DocType="\"" + $("#ngramBoxDocType").val() +"\"";
var URL=URL_PREFIX + strSO + URL_MIDDLE + PackName + URL_SUFFIX + DocType;
$.ajax({
url:URL,
dataType:'jsonp',
jsonp : 'json.wrf',
type :'get',
cache :false,
success: function(data){
var docs=data.response.docs;
var html='';
$.each(docs,function(key,value){
var arrayExtensions=['jpg','JPG','JPG File','jpeg','JPEG image','PNG','TIFF image','tiff'];
copy(value.FileName,value.FilePath);
html+='<tr>';
html+='<td>'+value.id+'</td>';
html+='<td>'+value.strSO+'</td>';
html+='<td class="text-center">'+value.PackName+'</td>';
html+='<td class="text-center">'+value.DocType+'</td>';
html+='<td class="text-center">'+value.DocName+'</td>';
html+='<td class="text-center"><form method="POST" action="openDocumentServlet" target="_blank"><input name="document" value="'+value.FilePath+'" hidden><input name="docName" value="'+value.FileName+'" hidden><input id="buton" type="submit" class="btn btn-sm" value="OPEN"></form></td>';
html+='<td class="text-center"><form name="copyForm"><input name="filename" value="'+value.FilePath+'" hidden><input name="filepath" value="'+value.FileName+'" hidden><a href="#" class="preview"><input type="image" id="imageButton" src="images//SoftwareIcons-21-512.png" style="width:50px;height:50px;"><img id="showImages" src="" class="hide-image"/></a></form></td>';
html+='</tr>';
});
$('#example').DataTable().destroy();
$('#example tbody').html(html);
var table=$('#example').DataTable({
"aaSorting" : [],
});
},
});
};
</script>
Но таблица не заполняет значения, когда я щелкаю раздел предварительного просмотра изображения, потому что я создал таблицу динамически. Как мне решить эту проблему. Если я решу эту проблему, я захочу скопировать файлы, когда в разделе предварительного просмотра изображения произошло действие при наведении курсора, и я хочу показать скопированный файл, например, предварительный просмотр изображения.
Итак, я звоню в java-класс вот так.
<script>
function copy(Filename,Filepath){
$.ajax({
url:"copyFile.java",
type:"GET",
dataType:"text",
data:{filename:Filename,filepath:Filepath},
success:function(data){
console.log(data);
var newSrc=$("#showImages").attr("src").replace(data);
$("#showImages").attr("src",data);
}
});
}
</script>