Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hudsonalves

Modificar upload

Recommended Posts

Faço individualmente upload para uma galeria usando access, na minha tabela, possuo os campos: PIC_NAME, PIC_TYPE, PIC_DATED, PIC_IMAGE e assim por diante.

 

 

bem, minha dúvida é a seguinte, no campo PIC_IMAGE incluo o nome do arquivo da foto que depois chamarei no HTML, até ai tudo funcionando muito bem. Mas imagine se eu tiver 100 imagens, vou precisar incluir uma a uma.

 

Existe alguma forma de incluir todos os nomes de arquivos separados por "virgula" nesta coluna chamada "PIC_IMAGE" para depois chamar a galeria no HTML?

 

 

Ja vi alguns sistemas de multiplos arquivos, mas vou precisar mexer em toda estrutura, consigo adaptar o meu código nesta mudança?

 

 

 

 

 

enviarimagem.asp

<!--#include file="ScriptLibrary/incResizeAddOn.asp" -->
<!--#include file="ScriptLibrary/incPureUpload.asp" -->




<%
'*** Pure ASP File Upload 2.1.7
Dim GP_uploadAction,UploadQueryString
PureUploadSetup
If (CStr(Request.QueryString("GP_upload")) <> "") Then
  Dim pau_thePath,pau_Extensions,pau_Form,pau_Redirect,pau_storeType,pau_sizeLimit,pau_nameConflict,pau_requireUpload,pau_minWidth,pau_minHeight,pau_maxWidth,pau_maxHeight,pau_saveWidth,pau_saveHeight,pau_timeout,pau_progressBar,pau_progressWidth,pau_progressHeight
  pau_thePath = """../images"""
  pau_Extensions = "GIF,JPG,JPEG,BMP,PNG"
  pau_Form = "form1"
  pau_Redirect = ""
  pau_storeType = "file"
  pau_sizeLimit = ""
  pau_nameConflict = "uniq"
  pau_requireUpload = "false"
  pau_minWidth = ""
  pau_minHeight = "" 
  pau_maxWidth = ""
  pau_maxHeight = ""
  pau_saveWidth = ""
  pau_saveHeight = ""
  pau_timeout = "600"
  pau_progressBar = ""
  pau_progressWidth = "800"
  pau_progressHeight = "596"
  
  Dim RequestBin, UploadRequest
  CheckPureUploadVersion 2.17
  ProcessUpload pau_thePath,pau_Extensions,pau_Redirect,pau_storeType,pau_sizeLimit,pau_nameConflict,pau_requireUpload,pau_minWidth,pau_minHeight,pau_maxWidth,pau_maxHeight,pau_saveWidth,pau_saveHeight,pau_timeout
end if
%>
<%
' *** Smart Image Processor 1.1.2
If (CStr(Request.QueryString("GP_upload")) <> "") Then
  Dim RUF_Component, RUF_DotNetResize, RUF_ResizeImages, RUF_AspectImages, RUF_maxWidth, RUF_maxHeight, RUF_Quality, RUF_MakeThumb, RUF_AspectThumb, RUF_Suffix, RUF_maxWidthThumb, RUF_maxHeightThumb, RUF_QualityThumb, RUF_RedirectURL
  RUF_Component = "AUTO"
  RUF_DotNetResize = "../ScriptLibrary/ResizeImage.aspx"
  RUF_ResizeImages = true
  RUF_AspectImages = true
  RUF_maxWidth = "800"
  RUF_maxHeight = "596"  
  RUF_Quality = "80"
  RUF_MakeThumb = true
  RUF_AspectThumb = true
  RUF_Suffix = "_small"
  RUF_maxWidthThumb = "130"
  RUF_maxHeightThumb = "130"
  RUF_QualityThumb = "70"
  RUF_RedirectURL = ""
  if RUF_ResizeImages then
    ResizeUploadedFiles RUF_Component, RUF_DotNetResize, pau_thePath, "", RUF_maxWidth, RUF_maxHeight, RUF_Quality, true, pau_saveWidth, pau_saveHeight, RUF_AspectImages, pau_nameConflict, ""
  end if
  if RUF_MakeThumb then
    ResizeUploadedFiles RUF_Component, RUF_DotNetResize, pau_thePath, RUF_Suffix, RUF_maxWidthThumb, RUF_maxHeightThumb, RUF_QualityThumb, false, pau_saveWidth, pau_saveHeight, RUF_AspectThumb, pau_nameConflict, ""
  end if
  if RUF_RedirectURL <> "" then
    Response.Redirect RUF_RedirectURL
  end if
end if
%>


<%
' *** Edit Operations: (Modified for File Upload) declare variables


Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd


Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId


Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i


MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (UploadQueryString <> "") Then
  MM_editAction = MM_editAction & "?" & UploadQueryString
End If


' boolean to abort record edit
MM_abortEdit = false


' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: (Modified for File Upload) set variables


If (CStr(UploadFormRequest("MM_insert")) = "form1") Then


  MM_editConnection = MM_connDUportal_STRING
  MM_editTable = "PICTURES"
  MM_editRedirectUrl = "submitimage.asp"
  MM_fieldsStr  = "PIC_TYPE|value|PIC_NAME|value|PIC_PICTURE|value|PIC_DATED|value|PIC_DESCRIPTION|value|PIC_HEIGHT|value|PIC_WIDTH|value|PIC_APPROVED|value"
  MM_columnsStr = "PIC_TYPE|none,none,NULL|PIC_NAME|',none,''|PIC_IMAGE|',none,''|PIC_DATED|',none,NULL|PIC_DESCRIPTION|',none,''|PIC_HEIGHT|',none,''|PIC_WIDTH|',none,''|PIC_APPROVED|none,none,NULL"


  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
  
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(UploadFormRequest(MM_fields(MM_i)))
  Next


  ' append the query string to the redirect URL
  If (MM_editRedirectUrl <> "" And UploadQueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And UploadQueryString <> "") Then
      MM_editRedirectUrl = MM_editRedirectUrl & "?" & UploadQueryString
    Else
      MM_editRedirectUrl = MM_editRedirectUrl & "&" & UploadQueryString
    End If
  End If


End If
%>


<%
' *** Insert Record: (Modified for File Upload) construct a sql insert statement and execute it


Dim MM_tableValues
Dim MM_dbValues


If (CStr(UploadFormRequest("MM_insert")) <> "") Then


  ' create the sql insert statement
  MM_tableValues = ""
  MM_dbValues = ""
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_tableValues = MM_tableValues & ","
      MM_dbValues = MM_dbValues & ","
    End If
    MM_tableValues = MM_tableValues & MM_columns(MM_i)
    MM_dbValues = MM_dbValues & MM_formVal
  Next
  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"


  If (Not MM_abortEdit) Then
    ' execute the insert
    Set MM_editCmd = Server.CreateObject("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_editConnection
    MM_editCmd.CommandText = MM_editQuery
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close


    If (MM_editRedirectUrl <> "") Then
      Response.Redirect(MM_editRedirectUrl)
    End If
  End If


End If
%>
<%
Dim rsType
Dim rsType_numRows


Set rsType = Server.CreateObject("ADODB.Recordset")
rsType.ActiveConnection = MM_connDUportal_STRING
rsType.Source = "SELECT * FROM TYPES ORDER BY TYPE_NAME ASC"
rsType.CursorType = 0
rsType.CursorLocation = 2
rsType.LockType = 1
rsType.Open()


rsType_numRows = 0
%>
<script language="JavaScript">
<!--


function checkFileUpload(form,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight) { //v2.09
  document.MM_returnValue = true;
  for (var i = 0; i<form.elements.length; i++) {
    field = form.elements[i];
    if (field.type.toUpperCase() != 'FILE') continue;
    checkOneFileUpload(field,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight);
} }


function checkOneFileUpload(field,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight) { //v2.09
  document.MM_returnValue = true;
  if (extensions != '') var re = new RegExp("\.(" + extensions.replace(/,/gi,"|").replace(/\s/gi,"") + ")$","i");
    if (field.value == '') {
      if (requireUpload) {alert('File is required!');document.MM_returnValue = false;field.focus();return;}
    } else {
      if(extensions != '' && !re.test(field.value)) {
        alert('This file type is not allowed for uploading.\nOnly the following file extensions are allowed: ' + extensions + '.\nPlease select another file and try again.');
        document.MM_returnValue = false;field.focus();return;
      }
    document.PU_uploadForm = field.form;
    re = new RegExp(".(gif|jpg|png|bmp|jpeg)$","i");
    if(re.test(field.value) && (sizeLimit != '' || minWidth != '' || minHeight != '' || maxWidth != '' || maxHeight != '' || saveWidth != '' || saveHeight != '')) {
      checkImageDimensions(field,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight);
    } }
}


function showImageDimensions(fieldImg) { //v2.09
  var isNS6 = (!document.all && document.getElementById ? true : false);
  var img = (fieldImg && !isNS6 ? fieldImg : this);
  if (img.width > 0 && img.height > 0) {
  if ((img.minWidth != '' && img.minWidth > img.width) || (img.minHeight != '' && img.minHeight > img.height)) {
    alert('Uploaded Image is too small!\nShould be at least ' + img.minWidth + ' x ' + img.minHeight); return;}
  if ((img.maxWidth != '' && img.width > img.maxWidth) || (img.maxHeight != '' && img.height > img.maxHeight)) {
    alert('Uploaded Image is too big!\nShould be max ' + img.maxWidth + ' x ' + img.maxHeight); return;}
  if (img.sizeLimit != '' && img.fileSize > img.sizeLimit) {
    alert('Uploaded Image File Size is too big!\nShould be max ' + (img.sizeLimit/1024) + ' KBytes'); return;}
  if (img.saveWidth != '') document.PU_uploadForm[img.saveWidth].value = img.width;
  if (img.saveHeight != '') document.PU_uploadForm[img.saveHeight].value = img.height;
  document.MM_returnValue = true;
} }


function checkImageDimensions(field,sizeL,minW,minH,maxW,maxH,saveW,saveH) { //v2.09
  if (!document.layers) {
    var isNS6 = (!document.all && document.getElementById ? true : false);
    document.MM_returnValue = false; var imgURL = 'file:///' + field.value.replace(/\\/gi,'/').replace(/:/gi,'|').replace(/"/gi,'').replace(/^\//,'');
    if (!field.gp_img || (field.gp_img && field.gp_img.src != imgURL) || isNS6) {field.gp_img = new Image();
  with (field) {gp_img.sizeLimit = sizeL*1024; gp_img.minWidth = minW; gp_img.minHeight = minH; gp_img.maxWidth = maxW; gp_img.maxHeight = maxH;
      gp_img.saveWidth = saveW; gp_img.saveHeight = saveH; gp_img.onload = showImageDimensions; gp_img.src = imgURL; }
} else showImageDimensions(field.gp_img);}
}
//-->
</script>
<script language="JavaScript">
<!--


function checkFileUpload(form,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight) { //v2.09
  document.MM_returnValue = true;
  for (var i = 0; i<form.elements.length; i++) {
    field = form.elements[i];
    if (field.type.toUpperCase() != 'FILE') continue;
    checkOneFileUpload(field,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight);
} }


function checkOneFileUpload(field,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight) { //v2.09
  document.MM_returnValue = true;
  if (extensions != '') var re = new RegExp("\.(" + extensions.replace(/,/gi,"|").replace(/\s/gi,"") + ")$","i");
    if (field.value == '') {
      if (requireUpload) {alert('File is required!');document.MM_returnValue = false;field.focus();return;}
    } else {
      if(extensions != '' && !re.test(field.value)) {
        alert('This file type is not allowed for uploading.\nOnly the following file extensions are allowed: ' + extensions + '.\nPlease select another file and try again.');
        document.MM_returnValue = false;field.focus();return;
      }
    document.PU_uploadForm = field.form;
    re = new RegExp(".(gif|jpg|png|bmp|jpeg)$","i");
    if(re.test(field.value) && (sizeLimit != '' || minWidth != '' || minHeight != '' || maxWidth != '' || maxHeight != '' || saveWidth != '' || saveHeight != '')) {
      checkImageDimensions(field,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight);
    } }
}


function showImageDimensions(fieldImg) { //v2.09
  var isNS6 = (!document.all && document.getElementById ? true : false);
  var img = (fieldImg && !isNS6 ? fieldImg : this);
  if (img.width > 0 && img.height > 0) {
  if ((img.minWidth != '' && img.minWidth > img.width) || (img.minHeight != '' && img.minHeight > img.height)) {
    alert('Uploaded Image is too small!\nShould be at least ' + img.minWidth + ' x ' + img.minHeight); return;}
  if ((img.maxWidth != '' && img.width > img.maxWidth) || (img.maxHeight != '' && img.height > img.maxHeight)) {
    alert('Uploaded Image is too big!\nShould be max ' + img.maxWidth + ' x ' + img.maxHeight); return;}
  if (img.sizeLimit != '' && img.fileSize > img.sizeLimit) {
    alert('Uploaded Image File Size is too big!\nShould be max ' + (img.sizeLimit/1024) + ' KBytes'); return;}
  if (img.saveWidth != '') document.PU_uploadForm[img.saveWidth].value = img.width;
  if (img.saveHeight != '') document.PU_uploadForm[img.saveHeight].value = img.height;
  document.MM_returnValue = true;
} }


function checkImageDimensions(field,sizeL,minW,minH,maxW,maxH,saveW,saveH) { //v2.09
  if (!document.layers) {
    var isNS6 = (!document.all && document.getElementById ? true : false);
    document.MM_returnValue = false; var imgURL = 'file:///' + field.value.replace(/\\/gi,'/').replace(/:/gi,'|').replace(/"/gi,'').replace(/^\//,'');
    if (!field.gp_img || (field.gp_img && field.gp_img.src != imgURL) || isNS6) {field.gp_img = new Image();
  with (field) {gp_img.sizeLimit = sizeL*1024; gp_img.minWidth = minW; gp_img.minHeight = minH; gp_img.maxWidth = maxW; gp_img.maxHeight = maxH;
      gp_img.saveWidth = saveW; gp_img.saveHeight = saveH; gp_img.onload = showImageDimensions; gp_img.src = imgURL; }
} else showImageDimensions(field.gp_img);}
}
//-->
</script>
<script language="javascript" src="../ScriptLibrary/incPureUpload.js"></script>
<div class="row">


<div class="col-md-12">
<article class="widget">
<header class="widget__header">
<h3 class="widget__title"><a href="#" onclick="return false;" class="btn btn-red"><i class="pe-7f-video"></i></a>Enviar nova imagem</h3>
<div class="widget__config">
</div>
</header>


<div class="widget__content">
<table class="table">
<form action="<%=MM_editAction%>" method="post" enctype="multipart/form-data" name="form1" onSubmit="checkFileUpload(this,'GIF,JPG,JPEG,BMP,PNG',true,'','','','','','PIC_WIDTH','PIC_HEIGHT');return document.MM_returnValue">
<tbody>
<tr>
                   <td>CATEGORIA:</td>
                   <td><select name="PIC_TYPE" class="input-text" id="PIC_TYPE">
<%
While (NOT rsType.EOF)
%>
<option value="<%=(rsType.Fields.Item("TYPE_ID").Value)%>"><%=(rsType.Fields.Item("TYPE_NAME").Value)%></option>
<%
  rsType.MoveNext()
Wend
If (rsType.CursorType > 0) Then
  rsType.MoveFirst
Else
  rsType.Requery
End If
%>
</select>
</td>
                 </tr>
               <tr> 
                 <td>NOME:</td>
                 <td> <input name="PIC_NAME" type="text" class="input-text" value="" size="32" maxlength="100"> 
                 </td>
               </tr>
               <tr> 
                 <td>IMAGEM:</td>
                 <td> <input name="PIC_PICTURE" type="file" class="input-text" id="PIC_PICTURE" onChange="checkOneFileUpload(this,'GIF,JPG,JPEG,BMP,PNG',true,'','','','','','PIC_WIDTH','PIC_HEIGHT')" size="35"></td>
               </tr>
               <tr> 
                 <td>DATA:</td>
                 <td> <input name="PIC_DATED" type="text" class="input-text" value="<%= date() %>" size="20"> </td>
               </tr>
               <tr> 
                 <td nowrap align="right" valign="top">DESCRIÇÃO:</td>
                 <td valign="baseline"> <textarea name="PIC_DESCRIPTION" cols="50" rows="5" class="textarea"></textarea> 
                 </td>
               </tr>
               <tr> 
                 <td> <input type="hidden" name="PIC_HEIGHT" value="" size="32"> 
                   <input type="hidden" name="PIC_WIDTH" value="" size="32"> 
                   <input type="hidden" name="PIC_APPROVED" value="1" size="32"> 
                   <input type="hidden" name="MM_insert" value="form1"> </td>
                 <td> <input name="submit" type="submit" class="btn btn-red pull-right" id="submit" value="Enviar"> 
                 </td>
               </tr>
</tbody>
           </form>
</table>


</article><!-- /widget -->
</div>


</div> <!-- /row -->
<%
rsType.Close()
Set rsType = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

Primeiro iremos usar o formulário para a seleção de arquivos.

formhtml
[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title> Formulário </title>
        <meta name="Generator" content="EditPlus">
        <meta name="Author" content="">
        <meta name="Keywords" content="">
        <meta name="Description" content="">

    </head>

    <body>

        <!-- Preparações para o Uploadify -->
        <script type="text/javascript" src="uploadify/jquery-1.4.4.min.js"></script>
        <script type="text/javascript" src="uploadify/swfobject.js"></script>
        <script type="text/javascript" src="uploadify/jquery.uploadify.v2.1.0.min.js"></script>
        <link rel="stylesheet" href="uploadify/styles/uploadify.css" type="text/css" media="all" title="all" charset="iso-8859-1" />


        <!-- Form -->
        <form id="novoArquivo" action="envio.asp" method="post">
            <div id="fileNameList">
                <pre id="fileInfo"></pre>
                <a id="lnkExclui" href="#">Excluir</a>
            </div>
            <div id="fileUpload">
                <input id="fileInput" name="fileInputs" type="file" />
            </div>
        </form>

        <!-- A 'mágica' -->
        <script type="text/javascript">

            //--------------------------------------------------------------------------------------------
            var respData; //Variável que armazena os dados de retorno de cada upload

            //As variáveis a seguir são alimentadas na função onComplete
            //e utilizadas na função onAllComplete
            var numArquivos = 0;            //Indica quantos arquivos foram enviados
            var nomeOriginal = new Array();    //Array com o NOME ORIGINAL de cada arquivo enviado
            var nomeArquivo = new Array();    //Array com o NOME ALTERADO de cada arquivo enviado
            var tamArquivo = new Array();    //Array com o TAMANHO de cada arquivo enviado
            var statusArquivo = new Array();//Array com o STATUS DE ENVIO de cada arquivo



            //--------------------------------------------------------------------------------------------
            //Esta função será chamada no final de todo o envio
            var onAllComplete = function(event, data) {

                //Limpa o local para apresentar os dados
                $('#fileInfo').html('');

               
                //Apresenta as informações de cada arquivo
                for (var nf = 1; nf <= numArquivos; nf++) {
                    $('#fileInfo').html(
                        $('#fileInfo').html() +
                        '<h2>Arquivo ' + nf + '</h2>' +
                        'Status de envio: <b>' + statusArquivo[nf] + '</b><br />' +
                        'Nome original do arquivo: <b>' + nomeOriginal[nf] + '</b><br />' +
                        'Nome do arquivo gravado: <b>' + nomeArquivo[nf] + '</b><br />' +
                        'Tamano do arquivo: <b>' + tamArquivo[nf] + '</b><br />' +
                        '<a href="uploads/' + nomeArquivo[nf] + '">Link para o arquivo</a><br /><br />'
                    );
                }

                //Esconde o botão e apresenta os dados do arquivo
                $('#fileNameList').show();
                $('#fileUpload').hide();
            }


            //--------------------------------------------------------------------------------------------
            //Esta função será chamada no final de CADA envio
            var onComplete = function(event, queueID, fileObj, response, data) {

                respData = $.parseJSON(response)

                //Incrementa o número de arquivos
                numArquivos++;

                //Armazena o status de envio (certamente 'OK')
                statusArquivo[numArquivos] = respData.result;

                //Se não houve erro no evio, armazena os dados do arquivo nos arrays
                if (respData.result != 'ERRO') {

                    nomeOriginal[numArquivos] =        respData.nomeOriginal;
                    nomeArquivo[numArquivos] =        respData.nomeArquivo;
                    tamArquivo[numArquivos] =        respData.tamArquivo;

                }
            }


            //--------------------------------------------------------------------------------------------
            //O link Excluir mostra novamente o botão de upload
            $('#lnkExclui').click(function(e) {
                $('#fileNameList').hide();
                $('#fileUpload').show();
                e.preventDefault;
                return false;
            });


            //--------------------------------------------------------------------------------------------
            //Preparação inicial
            $(document).ready(function() {
                //Configuração do uploadify
                $('#fileInput').uploadify({
                    'uploader'        : 'uploadify/uploadify.swf',        //Handler Flash para o upload
                    'script'        : 'envio.asp',                        //Página a ser chamada para tratar o upload
                    'cancelImg'        : 'uploadify/cancelUpload.png',        //Imagem do botão de cancelar (X)
                    'auto'            : true,                                //Envio se inicia ao selecionar o arquivo
                    'folder'        : '',                                //Pasta para envio (quem vai tratar isso é o ASP)
                    'buttonText'    : 'Procurar',                        //Texto do botão
                    'multi'            : true,                                //Permite o envio de vários arquivos
                    'onComplete'    : onComplete,                        //A função a ser chamada A CADA arquivo enviado (definida acima)
                    'onAllComplete'    : onAllComplete,                    //A função a ser chamada no fim de TODO o envio (definida acima)
                    'onSelectOnce'    : function(event,data) {            //Esta função serve apenas para zerar o número de arquivos enviados
                                        numArquivos = 0;                // no início do envio
                                      }
                });

                //Preparação para a primeira tela
                $('#fileNameList').hide();
                $('#fileUpload').show();
            });
        </script>



    </body>
</html>
[/code]

Abaixo a página de envio do upload, onde iremos a classe de Upload e a classe JSON.

envio.asp

[code]<!--#include file="classUpload/clsUpload.asp"-->
<!--#include file="classJson/JSON_2.0.4.asp"-->

<%

    '------------------------------------------------------------------------
    'Gera uma string aleatória com 'n' dígitos
    'Usado para criar um nome aleatório para o arquivo
    function fnGeraChave(n)
        dim s

        randomize
        s = ""
        while len(s) < n
            s = chr (int((57 - 48 + 1) * Rnd + 48)) + s
        wend
        fnGeraChave = s
    end function
    '------------------------------------------------------------------------

    Response.Charset="ISO-8859-1"

    dim objUp            'Instância da classe upload (definida no arquivo clsUpload.asp)
    dim objJson            'Instância da classe JSON (definida no arquivo JSON_2.0.4.asp)
    dim diretorio        'Diretório destino
    dim nomeOriginal    'Nome original do arquivo
    dim nomeArquivo        'Nome temporário do arquivo
                        '(Alterado para evitar que arquivos com mesmo nome se sobrescrevam)

    'Instancia a classe clsUpload
    set objUp = New clsUpload

    'Instancia a classe JSON (para enviar a resposta)
    Set objJson = jsObject()

    'Campos passados pelo Uploadify:
    '    - Filename    Nome original do arquivo enviado
    '    - folder    Este campo é definido pelo parâmetro 'folder' do uploadify - não estamos usando
    '    - Filedata    Os bytes (stream) que compõem o arquivo
    '    - Upload    Só achei o valor 'Submit Query' neste campo

    if objUp.fields("Filedata").length <> 0 and objUp.fields("Filedata").length & "" <> "" then

        nomeOriginal = objUp.fields("Filename").value
        nomeArquivo = fnGeraChave(20) & "_" & nomeOriginal

        'O diretório destino é definido aqui, como pasta filha 'uploads' da pasta atual
        diretorio = request.serverVariables("PATH_TRANSLATED")
        diretorio = left (diretorio,instrRev(diretorio,"\")) & "uploads\"

        'Salva o arquivo (Lembre-se de dar direito de escrita para o usuário IUSR!)
        objUp.fields("Filedata").saveAs(diretorio & nomeArquivo)


        'Envia os dados do arquivo via JSON (pode ser que você precise deles no outro lado)
        objJson("result") = "OK"
        objJson("nomeArquivo") = nomeArquivo
        objJson("tamArquivo") = objUp.fields("Filedata").length
        objJson("nomeOriginal") = nomeOriginal

    else
        'Ocorreu um erro no envio
        objJson("result") = "ERRO"
    end if

    'Envia o JSON para o cliente
    objJson.flush

    'Destroi as instâncias
    Set objUp = Nothing
    Set objJson = Nothing

%>[/code]

A classe JSON_2.0.4 e a classe de Upload podem ser baixadas aqui, lembrando que será preciso criar uma pasta chamada classjson e uma pasta chamada classupload, após você terá que criar uma pasta chamada uploads , é nesta pasta, onde ficarão os arquivos que forem enviados para o servidor. Lembre-se de que o usuário IUSR precisa de direito de escrita nele.

JSON_2.0.4.asp
[code]<%
'
'    VBS JSON 2.0.3
'    Copyright (c) 2009 Tuðrul Topuz
'    Under the MIT (MIT-LICENSE.txt) license.
'

Const JSON_OBJECT    = 0
Const JSON_ARRAY    = 1

Class jsCore
    Public Collection
    Public Count
    Public QuotedVars
    Public Kind ' 0 = object, 1 = array

    Private Sub Class_Initialize
        Set Collection = CreateObject("Scripting.Dictionary")
        QuotedVars = True
        Count = 0
    End Sub

    Private Sub Class_Terminate
        Set Collection = Nothing
    End Sub

    ' counter
    Private Property Get Counter
        Counter = Count
        Count = Count + 1
    End Property

    ' - data maluplation
    ' -- pair
    Public Property Let Pair(p, v)
        If IsNull(p) Then p = Counter
        Collection(p) = v
    End Property

    Public Property Set Pair(p, v)
        If IsNull(p) Then p = Counter
        If TypeName(v) <> "jsCore" Then
            Err.Raise &hD, "class: class", "Incompatible types: '" & TypeName(v) & "'"
        End If
        Set Collection(p) = v
    End Property

    Public Default Property Get Pair(p)
        If IsNull(p) Then p = Count - 1
        If IsObject(Collection(p)) Then
            Set Pair = Collection(p)
        Else
            Pair = Collection(p)
        End If
    End Property
    ' -- pair
    Public Sub Clean
        Collection.RemoveAll
    End Sub

    Public Sub Remove(vProp)
        Collection.Remove vProp
    End Sub
    ' data maluplation

    ' encoding
    Function jsEncode(str)
        Dim charmap(127), haystack()
        charmap(8)  = "\b"
        charmap(9)  = "\t"
        charmap(10) = "\n"
        charmap(12) = "\f"
        charmap(13) = "\r"
        charmap(34) = "\"""
        charmap(47) = "\/"
        charmap(92) = "\\"

        Dim strlen : strlen = Len(str) - 1
        ReDim haystack(strlen)

        Dim i, charcode
        For i = 0 To strlen
            haystack(i) = Mid(str, i + 1, 1)

            charcode = AscW(haystack(i)) And 65535
            If charcode < 127 Then
                If Not IsEmpty(charmap(charcode)) Then
                    haystack(i) = charmap(charcode)
                ElseIf charcode < 32 Then
                    haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
                End If
            Else
                haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
            End If
        Next

        jsEncode = Join(haystack, "")
    End Function

    ' converting
    Public Function toJSON(vPair)
        Select Case VarType(vPair)
            Case 0    ' Empty
                toJSON = "null"
            Case 1    ' Null
                toJSON = "null"
            Case 7    ' Date
                ' toJSON = "new Date(" & (vPair - CDate(25569)) * 86400000 & ")"    ' let in only utc time
                toJSON = """" & CStr(vPair) & """"
            Case 8    ' String
                toJSON = """" & jsEncode(vPair) & """"
            Case 9    ' Object
                Dim bFI,i
                bFI = True
                If vPair.Kind Then toJSON = toJSON & "[" Else toJSON = toJSON & "{"
                For Each i In vPair.Collection
                    If bFI Then bFI = False Else toJSON = toJSON & ","

                    If vPair.Kind Then
                        toJSON = toJSON & toJSON(vPair(i))
                    Else
                        If QuotedVars Then
                            toJSON = toJSON & """" & i & """:" & toJSON(vPair(i))
                        Else
                            toJSON = toJSON & i & ":" & toJSON(vPair(i))
                        End If
                    End If
                Next
                If vPair.Kind Then toJSON = toJSON & "]" Else toJSON = toJSON & "}"
            Case 11
                If vPair Then toJSON = "true" Else toJSON = "false"
            Case 12, 8192, 8204
                toJSON = RenderArray(vPair, 1, "")
            Case Else
                toJSON = Replace(vPair, ",", ".")
        End select
    End Function

    Function RenderArray(arr, depth, parent)
        Dim first : first = LBound(arr, depth)
        Dim last : last = UBound(arr, depth)

        Dim index, rendered
        Dim limiter : limiter = ","

        RenderArray = "["
        For index = first To last
            If index = last Then
                limiter = ""
            End If

            On Error Resume Next
            rendered = RenderArray(arr, depth + 1, parent & index & "," )

            If Err = 9 Then
                On Error GoTo 0
                RenderArray = RenderArray & toJSON(Eval("arr(" & parent & index & ")")) & limiter
            Else
                RenderArray = RenderArray & rendered & "" & limiter
            End If
        Next
        RenderArray = RenderArray & "]"
    End Function

    Public Property Get jsString
        jsString = toJSON(Me)
    End Property

    Sub Flush
        If TypeName(Response) <> "Empty" Then
            Response.Write(jsString)
        ElseIf WScript <> Empty Then
            WScript.Echo(jsString)
        End If
    End Sub

    Public Function Clone
        Set Clone = ColClone(Me)
    End Function

    Private Function ColClone(core)
        Dim jsc, i
        Set jsc = new jsCore
        jsc.Kind = core.Kind
        For Each i In core.Collection
            If IsObject(core(i)) Then
                Set jsc(i) = ColClone(core(i))
            Else
                jsc(i) = core(i)
            End If
        Next
        Set ColClone = jsc
    End Function

End Class

Function jsObject
    Set jsObject = new jsCore
    jsObject.Kind = JSON_OBJECT
End Function

Function jsArray
    Set jsArray = new jsCore
    jsArray.Kind = JSON_ARRAY
End Function

Function toJSON(val)
    toJSON = (new jsCore).toJSON(val)
End Function
%>[/code] 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É diferente do que tenho, hoje utilizo uma coluna do BD para incluir o nome do arquivo e posteriormente chama-la no HTML,

 

não tem uma forma de incluir varias imagens nesta mesma coluna ao inserir?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim recupere através de um loop, jogue num array e depois um for na instrução INSERT

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma olhada nesse LINK, ele tem vários exemplos para Selecionar as Imagens, "Simples" ou "Múltiplas".

 

Ele NÃO faz o Upload, apenas a Seleção das Imagens, ai basta adaptá-lo ao seu script de upload e gravação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.