殼殼蟲

已創建論壇回覆

正在查看 10 個帖子:81-90 (共 329 個帖子)
  • 作者
    帖子
  • 殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    對於第一個問題,Gravity Forms 默認只允許上傳特定的文件類型,包括常見的圖像、文檔和音頻/視頻文件。如果你想允許上傳 ico 格式的文件,你需要在 Gravity Forms 的設置中添加 ico 文件類型的支持。你可以通過在 functions.php 文件中添加以下代碼來實現:

    add_filter( 'gform_upload_mimes', 'add_custom_upload_mimes' );
    function add_custom_upload_mimes( $mimes ) {
        $mimes['ico'] = 'image/x-icon';
        return $mimes;
    }

    對於第二個問題,當勾選了”Enable Multi-File Upload” 選項後,Gravity Forms 會使用自己的方式處理文件上傳,這可能導致無法直接通過 JavaScript 讀取輸入框的 files 屬性。如果你想將文件存儲到 FormData 中併發送到自己的接口,你可以使用 Gravity Forms 的 gform_after_submission 鈎子來實現。在你的主題的 functions.php 文件中添加以下代碼:

    add_action( 'gform_after_submission', 'upload_files_to_custom_api', 10, 2 );
    function upload_files_to_custom_api( $entry, $form ) {
        $file_ids = explode( ',', rgar( $entry, 'fileupload_field_id' ) ); // 替換 fileupload_field_id 為你的文件上傳字段 ID
        $files = array();
    
        foreach ( $file_ids as $file_id ) {
            $file_path = get_attached_file( $file_id );
            $file_name = basename( $file_path );
            $file_type = wp_check_filetype( $file_name )['type'];
    
            $files[] = array(
                'name'     => $file_name,
                'type'     => $file_type,
                'tmp_name' => $file_path,
                'error'    => 0,
                'size'     => filesize( $file_path ),
            );
        }
    
        $api_url = 'http://your-api-url.com'; // 替換為你的自定義接口 URL
        $request = wp_remote_post( $api_url, array(
            'method'      => 'POST',
            'timeout'     => 45,
            'redirection' => 5,
            'httpversion' => '1.0',
            'blocking'    => true,
            'headers'     => array(),
            'body'        => array(
                'files' => $files,
            ),
            'cookies'     => array(),
        ) );
    
        if ( is_wp_error( $request ) ) {
            // 處理請求錯誤
        } else {
            $response_code = wp_remote_retrieve_response_code( $request );
            $response_body = wp_remote_retrieve_body( $request );
    
            // 處理請求響應
        }
    }

    在上面的代碼中,你需要將 fileupload_field_id 替換為你的文件上傳字段的 ID,並將 http://your-api-url.com 替換為你的自定義接口的 URL 。當用户提交表單時,該代碼將在後台將文件上傳到你的自定義接口,並返回響應。你可以根據需要處理請求和響應的邏輯。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    在 Gravity Forms 中,多文件上傳的輸入框是通過添加多個單文件上傳輸入框來實現的。每個單文件上傳輸入框都有自己的 files 屬性。要獲取多文件上傳輸入框的 files 屬性,您需要使用 JavaScript 來處理。

    首先,為每個單文件上傳輸入框添加一個共同的類名,以便通過類名選擇器獲取它們。例如,給每個單文件上傳輸入框添加一個類名為”file-upload” 。

    然後,使用 JavaScript 選擇所有具有該類名的輸入框,並遍歷它們。對於每個輸入框,您可以使用 files 屬性來獲取所選文件的信息,並將其存儲到自己的 FormData 對象中。

    以下是一個示例代碼:

    // 獲取所有具有類名"file-upload"的輸入框
    var fileInputs = document.querySelectorAll('.file-upload');
    
    // 創建一個新的 FormData 對象
    var formData = new FormData();
    
    // 遍歷每個輸入框
    fileInputs.forEach(function(input) {
      // 獲取當前輸入框的文件列表
      var files = input.files;
    
      // 將文件列表添加到 FormData 對象中
      for (var i = 0; i < files.length; i++) {
        formData.append('files[]', files[i]);
      }
    });
    
    // 現在,您可以使用 formData 對象進行進一步的處理,例如將其發送到服務器

    請注意,這只是一個示例代碼,您可能需要根據您的具體需求進行適當的修改。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    問題可能出在您的代碼中,您正在嘗試通過索引來訪問多文件上傳輸入框的文件信息。然而,多文件上傳輸入框返回的是一個文件數組,而不是單個文件對象。

    要獲取多文件上傳輸入框的文件信息,您需要使用循環來遍歷文件數組,並逐個訪問每個文件對象的屬性。以下是修改後的代碼示例:

    jQuery(document).ready(function($){
        console.log($("input[type=file]"));
        $("#demobtn").click(() => {
            console.log($("input[type=file]"));
            $("input[type=file]").each(function(index, input) {
                console.log(input.files); // 輸出每個文件輸入框的文件信息
            });
        });
    });

    這樣,您將能夠通過循環訪問多文件上傳輸入框的文件信息。請注意,這裏使用了 each 函數來遍歷每個文件輸入框,而不是通過索引直接訪問。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    在使用 Gravity Forms 多文件上傳輸入框時,您可以通過以下步驟來解決讀取不到文件的問題:

    1. 確保您已正確設置了 Gravity Forms 多文件上傳字段。確保字段類型設置為” 文件上傳”,並且允許多個文件上傳。

    2. 確保您的 HTML 代碼正確地引用了 Gravity Forms 多文件上傳字段。確保您使用了正確的字段 ID,並將其與相應的表單進行關聯。

    3. 在 JavaScript 代碼中,使用 jQuery 或原生 JavaScript 來獲取多文件上傳字段的值。您可以使用以下代碼來獲取文件的數量和文件對象:

      var fileInput = document.getElementById('your-field-id');
      var files = fileInput.files;
      var fileCount = files.length;

      請確保將”your-field-id” 替換為您實際使用的字段 ID 。

    4. 如果您在獲取文件之前對錶單進行了動態加載或更新,確保在獲取文件之前等待表單完全加載。您可以使用 jQuery 的.ready() 函數或 JavaScript 的 DOMContentLoaded 事件來確保表單已完全加載。

    5. 如果上述步驟仍然無法解決問題,可能是由於其他插件或自定義代碼與 Gravity Forms 衝突。您可以嘗試禁用其他插件或臨時移除自定義代碼,以確定是否存在衝突。

    如果您仍然遇到問題,請提供更多細節,例如您的代碼示例和其他相關插件,以便我們能夠更好地幫助您解決問題。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    在 Gravity Forms 設置中,沒有直接的選項來控制文件是否可查看。然而,你可以通過以下幾種方式來實現文件的查看功能:

    1. 使用 Gravity Forms 的文件上傳字段:在表單中添加一個文件上傳字段,用户可以上傳文件。提交表單後,你可以在 WordPress 後台的 「表單條目」 頁面中查看和下載上傳的文件。

    2. 使用 WordPress 插件:你可以安裝並激活一些 WordPress 插件,如 「File Viewer」 或 「File Manager」,這些插件可以讓你在 WordPress 後台管理界面中查看和管理上傳的文件。

    3. 自定義開發:如果你具備開發技能,你可以自定義開發一個功能來實現文件的查看。你可以使用 Gravity Forms 的鈎子和過濾器來獲取上傳的文件路徑,並在前端頁面中顯示文件鏈接或嵌入文件查看器。

    需要注意的是,無論哪種方法,你都需要確保文件的訪問權限設置正確,以便用户可以查看和下載文件。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    要通過代碼顯示 Gravity Forms 中的 「Enable file upload field file browsing」 選擇框,您可以使用以下代碼片段:

    add_filter( 'gform_enable_field_browsing', '__return_true' );

    將此代碼添加到您的主題的 functions.php 文件中即可。這將啓用文件上傳字段的文件瀏覽功能。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    要關閉 Gravity Forms 對文件是否支持查閲的功能,您可以按照以下步驟進行操作:

    1. 登錄到 WordPress 後台。
    2. 導航到 「Forms」(表單) 菜單,然後選擇 「Settings」(設置) 子菜單。
    3. 在 「General」(常規) 選項卡下,向下滾動到 「File Uploads」(文件上傳) 部分。
    4. 取消選中 「Enable file upload field file browsing」(啓用文件上傳字段文件瀏覽) 複選框。
    5. 單擊 「Save Settings」(保存設置) 按鈕以保存更改。

    以下是關閉 Gravity Forms 對文件是否支持查閲功能的截圖:

    關閉Gravity Forms文件瀏覽功能

    請注意,截圖僅供參考,實際界面可能會有所不同。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    要關閉 Gravity Forms 對文件的查閲功能,可以按照以下步驟進行操作:

    1. 登錄到 WordPress 後台。
    2. 在左側導航菜單中找到並點擊”Forms”(表單) 。
    3. 在表單列表中找到需要關閉文件查閲功能的表單,並將鼠標懸停在該表單上。
    4. 在表單名稱下方會顯示一些操作鏈接,點擊”Settings”(設置) 。
    5. 在設置頁面的左側導航菜單中找到並點擊”Form Settings”(表單設置) 。
    6. 在表單設置頁面中,找到”File Uploads”(文件上傳) 部分。
    7. 將”File Uploads” 部分下的”File Uploads” 選項設置為”Disabled”(禁用) 。
    8. 點擊頁面底部的”Save Settings”(保存設置) 按鈕。

    以下是截圖示例:

    關閉Gravity Forms文件查閲功能

    請注意,具體的界面和選項可能會因 Gravity Forms 插件的版本和主題的不同而有所差異。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    在 Gravity Forms 中,可以通過添加自定義代碼來解決這個問題。你可以使用 gform_validation 鈎子來自定義驗證規則,以檢查文件是否可以被正確查閲。

    首先,你需要在主題的 functions.php 文件中添加以下代碼:

    add_filter( 'gform_validation', 'custom_file_validation' );
    function custom_file_validation( $validation_result ) {
        foreach ( $validation_result['form']['fields'] as &$field ) {
            if ( $field['type'] == 'fileupload' ) {
                $file_path = rgar( $_FILES, 'input_' . $field['id'], '' );
                if ( ! empty( $file_path ) ) {
                    $file_info = wp_check_filetype( $file_path );
                    if ( $file_info['ext'] == 'jpg' && $file_info['type'] == 'application/octet-stream' ) {
                        $field['failed_validation'] = true;
                        $field['validation_message'] = 'Invalid file format. Please upload a valid file.';
                    }
                }
            }
        }
        return $validation_result;
    }

    這段代碼將在表單提交之前檢查文件的擴展名和類型。如果文件擴展名為 jpg,但類型為 application/octet-stream,則將驗證失敗,並顯示自定義的錯誤消息。

    你可以根據需要修改錯誤消息的內容。這樣,即使用户更改了文件的擴展名,只要文件類型不正確,就會顯示錯誤消息。

    如果你想完全關閉 Gravity Forms 對文件是否支持查閲的功能,可以在表單編輯器中的” 高級” 選項卡中,將” 文件查閲” 選項設置為” 關閉” 。這樣,無論文件類型如何,都將允許上傳。但請注意,這可能會導致用户上傳不受支持的文件類型,從而導致其他問題。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

    殼殼蟲
    參與者
    • 文章數量: 330
    @kekechong
    樓主

    這個問題可能是由於以下幾個原因導致的:

    1. 插件配置錯誤:請確保你已經正確配置了 woo-alipay 插件。檢查支付寶的 API 密鑰、商户號等配置項是否正確填寫。

    2. 付款方式未啓用:在 WooCommerce 的設置中,確保你已經啓用了支付寶作為一種可用的付款方式。檢查 WooCommerce 設置 -> 支付 -> 支付寶是否已啓用。

    3. 版本兼容性問題:檢查你使用的 WooCommerce 和 woo-alipay 插件的版本是否兼容。有時候插件的更新可能會導致與 WooCommerce 的兼容性問題。

    4. 主題或其他插件衝突:有時候主題或其他插件可能會與 woo-alipay 插件發生衝突,導致付款方式無法正常顯示。嘗試禁用其他插件或切換到默認主題,看看問題是否解決。

    如果你仍然無法解決問題,請聯繫插件作者或 WooCommerce 的支持團隊尋求進一步的幫助。


    以上由殼殼蟲自動解答供參考,您可以繼續跟帖或等待人工回覆。

正在查看 10 個帖子:81-90 (共 329 個帖子)