powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Передача в поток файлов в ZEN
1 сообщений из 1, страница 1 из 1
Передача в поток файлов в ZEN
    #38035934
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема, в целом, в загрузке документов на сервер.
Есть механизм, который подгружает файлы на сервер, описанный в одной CSP-странице:
Include emConst

/// /Загрузка нового файла
Class Application.UpLoadFileCreateNew Extends Application.AbstractApplication
{

ClassMethod OnPage() As %Status [ ServerOnly = 1 ]
{
  &html<
    <script language='javascript'>
     function loadf() {
      try {Form.FileStream.focus();}catch(e){}
     }
     </script>
  >
  w "<body onload='loadf()'>",!
  s pageid=##class(Portal.Page).OpenSysCode("AdminPage").%Id()
  d ##class(csp.Common.Page).SetPath(pageid)
  s file = ^||options("path")_"/admportal.css"
  s path = ##class(System.TUtil).GetFullCSPPath()_"/"_file
  
  &html<
    <script type='text/javascript' src='MainPortal/js/g_escape.js'></script>
    <link rel='stylesheet' type='text/css' href='#(file)#'>
  >
  s SiteCode=%request.Get("SiteCode")
  s TypFilesID=%request.Get("TypFilesID")
  s Height=%request.Get("Height")
  s Modal=%request.Get("Modal") 
  s Folder=%request.Get("Folder")
  s Replace=%request.Get("replace")
  i $i(^nnnnn)
  i $g(%request)'="" && $isObject(%request) s ^nnnnn("rec")=$g(^nnnnn),^nnnnn("rec","SiteCode")=SiteCode,^nnnnn("rec","Mime")=$d(%request.MimeData("FileStream",1))
  ///set ^awef = %request.MimeData("FileStream",1)
  if Folder=0 { s FolderID="" } elseif Folder=$$$RecycleFolder {
    s FolderID=##class(System.TFileFolder).CreateRecycleFolder(##class(System.TAccount).GetSessionAccount().%Id(),SiteCode)
    i $$$ISERR(FolderID) s SiteCode=""
  } else { s FolderID=Folder }
  s UserRight("Create")= ##class(System.TUtil).GetUserExecRight(.doc, "createFile")
  if (SiteCode'="")&(TypFilesID'="")&(Folder'="")&(UserRight("Create")=$$$WRITE) {
    s TypFile=##class(System.SFileType).%OpenId(TypFilesID)
    if $data(%request.MimeData("FileStream",1)) {
      s Error="",res=1
      if %request.Get("chreplace")'="on" { s Replace="" } else {
        s ref=##class(System.TFile).%OpenId(Replace)
        if $zObjState(ref) {
          s FileName=%request.MimeData("FileStream",1).FileName
          if $zconvert(ref.DataType,"l")'=$zconvert($p(FileName,".",$l(FileName,".")),"l") {
            s text = $$$cntFileLogWrongType
            s res=$$$ERROR($$$GeneralError,text)
          }
        } else {s Replace=""}
      }
      if '$$$ISERR(res) s res=##class(Application.UpLoadFile).AddFile(%request.MimeData("FileStream",1),SiteCode,$s(TypFilesID="ALL":"",1:TypFile.SysCode),,FolderID,Replace)
      s Replace=""
      i $$$ISERR(res) {
        Do DecomposeStatus^%apiOBJ(res,.err)
        s Error=1_$$$errSaveError(err(err))
      } else { 
        s ^mtempUpLoadFile(%session.%Id(),res)=$tr($h,",")
        s Oref=##class(System.TFile).%OpenId(res),link=""
        if $zObjState(Oref) {
          s link=##class(%CSP.Page).Link(Oref.Path_Oref.FileNameInternal)
          k Oref
          s res=##class(System.TAccount).GetSessionAccount().Exec(.doc,"changeRight",%session.Data("UserId"),res,$$$WRITE)
          if $$$ISERR(res)
           {
             Do DecomposeStatus^%apiOBJ(res,.err)
             s Error="1"_err(err)
          }
        }
        &html<
          <a id='aNowUpLoadFile' Name='aNowUpLoadFile' style="display: none;" href='#(link)#' ></a>
          <script language='javascript'>
            parent.document.getElementById('sourceFileURL').value=document.getElementById('aNowUpLoadFile').href;
            parent.document.getElementById('sourceFileID').value='#(res)#';
            parent.TypeFileChange('#(Height)#','#(SiteCode)#','#(Modal)#');
           </script>
        >
        
        s Error="0"_$$$cntFileLogAdd_". "_$$$cntFileLogAddFrame
      }
      k %request.MimeData("FileStream")
    } 
    w !,"<form Name='Form' enctype='multipart/form-data' method='post' action=''>"
    w !,"<table class='list1' cellpadding='0' cellspacing='1' border='0'>"
    w !,"<tr>"
    w !,"<th nowrap colspan=2>"_$$$cntFileFormFileType_" : "_$s(TypFilesID="ALL":$$$cntFileFormFileTypeAll,1:TypFile.ObjectName)_"</th>"
    w !,"</tr>"
    w !,"<tr><td  nowrap>"_$$$cntFileFormChange_"</td><td nowrap><input type=file size=35 id='FileStream' name='FileStream' value='*.jpg'></td></tr>"
    w !,"<tr><td nowrap colspan=2>"
    if Replace]"" {
      s Ref=##class(System.TFile).%OpenId(Replace)
      if $zObjState(Ref) {
        w "<input type=hidden id='replace' name='replace' value='"_Replace_"'>"
        w "<input name='chreplace' id='chreplace' type='checkbox'/>"_$$$cntFileFormReloadChange(Ref.FileNameExternal)
      }
      k Ref
    } else {
      w "<span style='font-size: 12px; "_$s(+$g(Error):"color: red;",1:"")_"'> "_$e($g(Error),2,$l($g(Error)))_"</span>"
    }
    w "</td></tr>"
    w !,"<tr nowrap align=right><td colspan=2><input class=btn1 type='submit' value='"_$$$cntFileFormLoad_"'>"
    w !," <input class=btn1 type='button' value='"_$$$cntFileCloseFrame_"' onclick='parent.fpClose(""divUpLoadFile"");'></td></tr>"
    
    w !,"<tr>"
    w !,"<td colspan=2 class=listpages> "
    w !,"</td>"
    w !,"</tr>"
    w !,"</table>"
  
    w "</form>"
  } else {
    &html<
      <script language='javascript'>
        parent.fpClose('divUpLoadFile');
       </script>
    >
  }
  w "</body>",!
  q $$$OK
}

}
Читать это особо не нужно, просто кинул код, который дан.
Как, используя эту страницу, или части из её кода, всё же, загрузить файл на сервер?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Передача в поток файлов в ZEN
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]